diff options
Diffstat (limited to 'source/slang/slang-serialize-type-info.h')
| -rw-r--r-- | source/slang/slang-serialize-type-info.h | 12 |
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) { |
