Fix OpenRA.Lint throwing because "perf" log channel does not exist
Slightly modified the Log class to allow dummy channels that don't write anywhere, then use it on Lint because map loading writes to the "perf" channel.
This commit is contained in:
@@ -46,6 +46,12 @@ namespace OpenRA
|
|||||||
{
|
{
|
||||||
if (Channels.ContainsKey(channelName)) return;
|
if (Channels.ContainsKey(channelName)) return;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(baseFilename))
|
||||||
|
{
|
||||||
|
Channels.Add(channelName, new ChannelInfo());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var filename in FilenamesForChannel(channelName, baseFilename))
|
foreach (var filename in FilenamesForChannel(channelName, baseFilename))
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -70,6 +76,9 @@ namespace OpenRA
|
|||||||
if (!Channels.TryGetValue(channel, out info))
|
if (!Channels.TryGetValue(channel, out info))
|
||||||
throw new Exception("Tried logging to non-existant channel " + channel);
|
throw new Exception("Tried logging to non-existant channel " + channel);
|
||||||
|
|
||||||
|
if (info.Writer == null)
|
||||||
|
return;
|
||||||
|
|
||||||
info.Writer.WriteLine(format, args);
|
info.Writer.WriteLine(format, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,9 @@
|
|||||||
* as published by the Free Software Foundation. For more information,
|
* as published by the Free Software Foundation. For more information,
|
||||||
* see COPYING.
|
* see COPYING.
|
||||||
*/
|
*/
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
@@ -41,6 +44,8 @@ namespace OpenRA.Lint
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
Log.AddChannel("perf", null);
|
||||||
|
|
||||||
var options = args.Where(a => a.StartsWith("-"));
|
var options = args.Where(a => a.StartsWith("-"));
|
||||||
var mod = args.Where(a => !options.Contains(a)).First();
|
var mod = args.Where(a => !options.Contains(a)).First();
|
||||||
var map = args.Where(a => !options.Contains(a)).Skip(1).FirstOrDefault();
|
var map = args.Where(a => !options.Contains(a)).Skip(1).FirstOrDefault();
|
||||||
|
|||||||
Reference in New Issue
Block a user