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:
Pavlos Touboulidis
2014-04-23 13:22:14 +03:00
parent 9dc2b3cd76
commit 36a660385c
2 changed files with 14 additions and 0 deletions

View File

@@ -46,6 +46,12 @@ namespace OpenRA
{
if (Channels.ContainsKey(channelName)) return;
if (string.IsNullOrEmpty(baseFilename))
{
Channels.Add(channelName, new ChannelInfo());
return;
}
foreach (var filename in FilenamesForChannel(channelName, baseFilename))
try
{
@@ -70,6 +76,9 @@ namespace OpenRA
if (!Channels.TryGetValue(channel, out info))
throw new Exception("Tried logging to non-existant channel " + channel);
if (info.Writer == null)
return;
info.Writer.WriteLine(format, args);
}
}

View File

@@ -6,6 +6,9 @@
* as published by the Free Software Foundation. For more information,
* see COPYING.
*/
using System.IO;
#endregion
using System;
@@ -41,6 +44,8 @@ namespace OpenRA.Lint
try
{
Log.AddChannel("perf", null);
var options = args.Where(a => a.StartsWith("-"));
var mod = args.Where(a => !options.Contains(a)).First();
var map = args.Where(a => !options.Contains(a)).Skip(1).FirstOrDefault();