summaryrefslogtreecommitdiff
path: root/source/slang/slang-serialize-type-info.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-serialize-type-info.h')
-rw-r--r--source/slang/slang-serialize-type-info.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/slang/slang-serialize-type-info.h b/source/slang/slang-serialize-type-info.h
index c80eb8051..6258a129d 100644
--- a/source/slang/slang-serialize-type-info.h
+++ b/source/slang/slang-serialize-type-info.h
@@ -104,6 +104,12 @@ struct SerialTypeInfo<T[N]>
static void toSerial(SerialWriter* writer, const void* inNative, void* outSerial)
{
SerialElementType* serial = (SerialElementType*)outSerial;
+
+ if (writer->getFlags() & SerialWriter::Flag::ZeroInitialize)
+ {
+ ::memset(outSerial, 0, sizeof(SerialElementType) * N);
+ }
+
const T* native = (const T*)inNative;
for (Index i = 0; i < Index(N); ++i)
{
@@ -278,6 +284,12 @@ struct SerialTypeInfo<Dictionary<KEY, VALUE>>
keys.setCount(count);
values.setCount(count);
+ if (writer->getFlags() & SerialWriter::Flag::ZeroInitialize)
+ {
+ ::memset(keys.getBuffer(), 0, count * sizeof(KeySerialType));
+ ::memset(values.getBuffer(), 0, count * sizeof(ValueSerialType));
+ }
+
Index i = 0;
for (const auto& pair : src)
{