Fixed deserialization of decimal script fields

This commit is contained in:
Simon Lübeß
2026-10-21 15:58:53 +02:00
parent ba8b5ed47b
commit 25cbf58106
2 changed files with 6 additions and 2 deletions
@@ -324,7 +324,9 @@ public class DeserializationObject
return deserializedValue;
}
if (fieldType.IsPrimitive)
// Decimals are not actually primitives, but we treat them as if they were, because they are a built-in type
// and it makes more sense to send them over to the engine as a binary type than to serialize their underlying fields (which would happen when we treated them as a struct).
if (fieldType.IsPrimitive || fieldType == typeof(decimal))
{
return DeserializePrimitive(fieldName, fieldType);
}
@@ -364,7 +366,7 @@ public class DeserializationObject
public object? DeserializePrimitive(string fieldName, Type fieldType)
{
Debug.Assert(fieldType.IsPrimitive, $"{fieldType} is not a primitive type.");
Debug.Assert(fieldType.IsPrimitive || fieldType == typeof(decimal), $"{fieldType} is not a primitive type.");
SerializationType expectedType = SerializationType.None;