From fc8b5758ca7a9b3aaf2f93d45ff570fab2a68bb8 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Fri, 31 Jul 2020 12:25:58 -0400 Subject: Fix for bug where memory that has been allocated with new T[] (within a list) is freed with free in the RiffContainer. (#1473) --- source/slang/slang-ir-serialize.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'source/slang/slang-ir-serialize.cpp') diff --git a/source/slang/slang-ir-serialize.cpp b/source/slang/slang-ir-serialize.cpp index 369ea37c5..64316d457 100644 --- a/source/slang/slang-ir-serialize.cpp +++ b/source/slang/slang-ir-serialize.cpp @@ -462,9 +462,7 @@ static Result _writeArrayChunk(IRSerialCompressionType compressionType, FourCC c header.numCompressedEntries = uint32_t(numCompressedEntries); container->write(&header, sizeof(header)); - - const size_t compressedSize = compressedPayload.getCount(); - container->moveOwned(container->addData(), compressedPayload.detachBuffer(), compressedSize); + container->write(compressedPayload.getBuffer(), compressedPayload.getCount()); break; } default: @@ -600,9 +598,7 @@ Result _writeInstArrayChunk(IRSerialCompressionType compressionType, FourCC chun header.numCompressedEntries = 0; container->write(&header, sizeof(header)); - - const size_t compressedPayloadSize = compressedPayload.getCount(); - container->moveOwned(container->addData(), compressedPayload.detachBuffer(), compressedPayloadSize); + container->write(compressedPayload.getBuffer(), compressedPayload.getCount()); return SLANG_OK; } -- cgit v1.2.3