aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIsaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>2023-06-05 00:19:46 +0100
committerGitHub <noreply@github.com>2023-06-05 01:19:46 +0200
commit306f7e93a0d99f7844c42a6e3c84ee9040f17864 (patch)
treeb57c787ac8ed0aae93d31692622a12a45f96b163
parent8954ff3af20b8b6bb3940c073b24cda1c81703d5 (diff)
Dont Error on Invalid Enum Values (#5169)1.1.865
* Dont Error on Invalid Enum * Use TryParse * Log warning
-rw-r--r--src/Ryujinx.Common/Utilities/TypedStringEnumConverter.cs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/Ryujinx.Common/Utilities/TypedStringEnumConverter.cs b/src/Ryujinx.Common/Utilities/TypedStringEnumConverter.cs
index c0127dc4..73765129 100644
--- a/src/Ryujinx.Common/Utilities/TypedStringEnumConverter.cs
+++ b/src/Ryujinx.Common/Utilities/TypedStringEnumConverter.cs
@@ -1,4 +1,5 @@
#nullable enable
+using Ryujinx.Common.Logging;
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
@@ -18,12 +19,14 @@ namespace Ryujinx.Common.Utilities
public override TEnum Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var enumValue = reader.GetString();
- if (string.IsNullOrEmpty(enumValue))
+
+ if (Enum.TryParse(enumValue, out TEnum value))
{
- return default;
+ return value;
}
- return Enum.Parse<TEnum>(enumValue);
+ Logger.Warning?.Print(LogClass.Configuration, $"Failed to parse enum value \"{enumValue}\" for {typeof(TEnum)}, using default \"{default(TEnum)}\"");
+ return default;
}
public override void Write(Utf8JsonWriter writer, TEnum value, JsonSerializerOptions options)
@@ -31,4 +34,4 @@ namespace Ryujinx.Common.Utilities
writer.WriteStringValue(value.ToString());
}
}
-}
+} \ No newline at end of file