From d8cf2060716e497c4e60b9eed6c9cf47775723df Mon Sep 17 00:00:00 2001 From: Corbin Jarett-Dunbar Date: Fri, 10 May 2024 01:08:41 -0500 Subject: [PATCH] Update ReClassNetFile.Read.cs (Fixed Crashing of enums with empty values) the original code attempted to add every parsed enum to the project without checking if it contained any values. It also did have handling for the possibility of duplicate enum item names within the same enum which could also cause crashes. --- .../ReClass/ReClassNetFile.Read.cs | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/ReClass.NET/DataExchange/ReClass/ReClassNetFile.Read.cs b/ReClass.NET/DataExchange/ReClass/ReClassNetFile.Read.cs index 4a3cb65d..343b588f 100644 --- a/ReClass.NET/DataExchange/ReClass/ReClassNetFile.Read.cs +++ b/ReClass.NET/DataExchange/ReClass/ReClassNetFile.Read.cs @@ -80,16 +80,29 @@ public void Load(Stream input, ILogger logger) var itemName = itemElement.Attribute(XmlNameAttribute)?.Value ?? string.Empty; var itemValue = (long?)itemElement.Attribute(XmlValueAttribute) ?? 0L; - values.Add(itemName, itemValue); + + if (!values.ContainsKey(itemName)) + { + values.Add(itemName, itemValue); + } + else + { + + values[itemName] = itemValue; + } } - var @enum = new EnumDescription + // Check if there are any values before adding the enum to prevent crashing + if (values.Count > 0) { - Name = name - }; - @enum.SetData(useFlagsMode, size, values); + var @enum = new EnumDescription + { + Name = name + }; + @enum.SetData(useFlagsMode, size, values); - project.AddEnum(@enum); + project.AddEnum(@enum); + } } }