From a147ef411a216007354eb210d1555a2205e0b6c1 Mon Sep 17 00:00:00 2001 From: SweetId <2630750+SweetId@users.noreply.github.com> Date: Sun, 10 Mar 2024 16:35:45 -0400 Subject: [PATCH] [Serialization] Fix bug when serializing an object or an array --- include/Nazara/Core/Serialization.inl | 60 +++++++++++++++++---------- 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/include/Nazara/Core/Serialization.inl b/include/Nazara/Core/Serialization.inl index e39860449..b4c061c7f 100644 --- a/include/Nazara/Core/Serialization.inl +++ b/include/Nazara/Core/Serialization.inl @@ -18,10 +18,10 @@ namespace Nz if (!context.PushObject(name)) return false; - if (!Serialize(context, value, TypeTag>())) - return false; + bool bRes = Serialize(context, value, TypeTag>()); - return context.PopObject(); + context.PopObject(); + return bRes; } /*! @@ -64,13 +64,15 @@ namespace Nz if (!context.PushArray(name)) return false; + bool bRes = true; for (size_t i = 0; i < N; ++i) { if (!Serialize(context, "", values[i])) - return false; + bRes = false; } - return context.PopArray(); + context.PopArray(); + return bRes; } template @@ -79,13 +81,15 @@ namespace Nz if (!context.PushArray(name)) return false; + bool bRes = true; for (auto&& value : values) { if (!Serialize(context, "", value)) - return false; + bRes = false; } - return context.PopArray(); + context.PopArray(); + return bRes; } template @@ -94,13 +98,15 @@ namespace Nz if (!context.PushArray(name)) return false; + bool bRes = true; for (auto&& value : values) { if (!Serialize(context, "", value)) - return false; + bRes = false; } - return context.PopArray(); + context.PopArray(); + return bRes; } template @@ -109,13 +115,15 @@ namespace Nz if (!context.PushArray(name)) return false; + bool bRes = true; for (auto&& value : values) { if (!Serialize(context, "", value)) - return false; + bRes = false; } - return context.PopArray(); + context.PopArray(); + return bRes; } /*! @@ -160,10 +168,10 @@ namespace Nz if (!context.PushObject(name)) return false; - if (!Unserialize(context, value, TypeTag())) - return false; + bool bRes = Unserialize(context, value, TypeTag()); - return context.PopObject(); + context.PopObject(); + return bRes; } /*! @@ -209,13 +217,15 @@ namespace Nz if (!context.PushArray(name)) return false; + bool bRes = true; for (size_t i = 0; i < N; ++i) { if (!Unserialize(context, "", &(*values[i]))) - return false; + bRes = false; } - return context.PopArray(); + context.PopArray(); + return bRes; } template @@ -224,13 +234,15 @@ namespace Nz if (!context.PushArray(name)) return false; + bool bRes = true; for (auto&& value : *values) { if (!Unserialize(context, "", &value)) - return false; + bRes = false; } - return context.PopArray(); + context.PopArray(); + return bRes; } template @@ -239,13 +251,15 @@ namespace Nz if (!context.PushArray(name)) return false; + bool bRes = true; for (auto&& value : *values) { if (!Unserialize(context, "", &value)) - return false; + bRes = false; } - return context.PopArray(); + context.PopArray(); + return bRes; } template @@ -254,13 +268,15 @@ namespace Nz if (!context.PushArray(name)) return false; + bool bRes = true; for (auto&& value : *values) { if (!Unserialize(context, "", &value)) - return false; + bRes = false; } - return context.PopArray(); + context.PopArray(); + return bRes; } /*!