mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
Fixed crash in Logger
This commit is contained in:
@@ -109,18 +109,35 @@ public class EditorLogger : Logger
|
||||
DateTime timestamp = DateTime.Now;
|
||||
|
||||
String message = scope String(4096);
|
||||
message.AppendF(format, params args);
|
||||
|
||||
MonoExceptionHelper exceptionHelper = null;
|
||||
MessageOrigin messageOrigin = null;
|
||||
|
||||
if (args.Count > 0)
|
||||
{
|
||||
exceptionHelper = args[^1] as MonoExceptionHelper;
|
||||
messageOrigin = args[^1] as MessageOrigin;
|
||||
}
|
||||
|
||||
var argsForMessage = args[0...];
|
||||
|
||||
if (exceptionHelper != null || messageOrigin != null)
|
||||
{
|
||||
argsForMessage = args[0..<^1];
|
||||
}
|
||||
|
||||
message.AppendF(format, params argsForMessage);
|
||||
|
||||
Debug.Write($"[{timestamp:HH:mm:ss.fff}] ({_name})|{level.UpperString}: {message}\n");
|
||||
|
||||
if (Editor.Instance?.LogWindow == null)
|
||||
return;
|
||||
|
||||
if (args.Count > 0 && (var ex = args[^1] as MonoExceptionHelper))
|
||||
if (args.Count > 0 && exceptionHelper != null)
|
||||
{
|
||||
Editor.Instance.LogWindow.LogException(timestamp, ex);
|
||||
Editor.Instance.LogWindow.LogException(timestamp, exceptionHelper);
|
||||
}
|
||||
else if (args.Count > 0 && (var messageOrigin = args[^1] as MessageOrigin))
|
||||
else if (args.Count > 0 && messageOrigin != null)
|
||||
{
|
||||
Editor.Instance.LogWindow.Log(timestamp, level, message, new .() {IsEngineMessage = IsEngineLogger, MessageOrigin = messageOrigin});
|
||||
}
|
||||
|
||||
@@ -206,6 +206,11 @@ static class ScriptGlue
|
||||
static void Log_LogMessage(int32 logLevel, MonoString* message, MonoString* fileName, int lineNumber)
|
||||
{
|
||||
char8* utfMessage = Mono.mono_string_to_utf8(message);
|
||||
|
||||
String escapedMessage = scope String(StringView(utfMessage));
|
||||
|
||||
escapedMessage.Replace("{", "{{");
|
||||
escapedMessage.Replace("}", "}}");
|
||||
|
||||
if (fileName != null)
|
||||
{
|
||||
@@ -213,13 +218,14 @@ static class ScriptGlue
|
||||
|
||||
MessageOrigin messageOrigin = new MessageOrigin(StringView(utfFileName), lineNumber);
|
||||
|
||||
Log.ClientLogger.Log((LogLevel)logLevel, StringView(utfMessage), messageOrigin);
|
||||
|
||||
Log.ClientLogger.Log((LogLevel)logLevel, escapedMessage, messageOrigin);
|
||||
|
||||
Mono.mono_free(utfFileName);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.ClientLogger.Log((LogLevel)logLevel, StringView(utfMessage));
|
||||
Log.ClientLogger.Log((LogLevel)logLevel, escapedMessage);
|
||||
}
|
||||
|
||||
Mono.mono_free(utfMessage);
|
||||
|
||||
Reference in New Issue
Block a user