From 9ada99815110207e51106d881377a6e35438ebcf Mon Sep 17 00:00:00 2001 From: Kah Wei Date: Thu, 24 Nov 2022 23:27:13 +0800 Subject: [PATCH] Fixed bug where lists failed to be deserialized correctly --- .../src/Serialisation/SerialisationUtilities.cxx | 10 +++++++++- .../src/Serialisation/SerialisationUtilities.h++ | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/SHADE_Managed/src/Serialisation/SerialisationUtilities.cxx b/SHADE_Managed/src/Serialisation/SerialisationUtilities.cxx index 2bf05bc5..83da64b8 100644 --- a/SHADE_Managed/src/Serialisation/SerialisationUtilities.cxx +++ b/SHADE_Managed/src/Serialisation/SerialisationUtilities.cxx @@ -279,7 +279,15 @@ namespace SHADE for (int i = 0; i < LIST_SIZE; ++i) { // Create the object - System::Object^ obj = System::Activator::CreateInstance(elemType); + System::Object^ obj; + if (elemType == System::String::typeid) + { + obj = gcnew System::String(""); + } + else + { + obj = System::Activator::CreateInstance(elemType); + } // Set it's value if (varAssignYaml(obj, node[i])) diff --git a/SHADE_Managed/src/Serialisation/SerialisationUtilities.h++ b/SHADE_Managed/src/Serialisation/SerialisationUtilities.h++ index 04c87ef4..d2043f6b 100644 --- a/SHADE_Managed/src/Serialisation/SerialisationUtilities.h++ +++ b/SHADE_Managed/src/Serialisation/SerialisationUtilities.h++ @@ -167,6 +167,10 @@ namespace SHADE { valueObj = 0; } + else + { + return false; + } } else { @@ -181,6 +185,10 @@ namespace SHADE valueObj = FieldType(); } } + else + { + return false; + } } }