diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/core/slang-riff.h | 5 | ||||
| -rw-r--r-- | source/slang/slang-ir-serialize.cpp | 8 |
2 files changed, 5 insertions, 8 deletions
diff --git a/source/core/slang-riff.h b/source/core/slang-riff.h index 6eeb0a722..9bdbcfdeb 100644 --- a/source/core/slang-riff.h +++ b/source/core/slang-riff.h @@ -363,9 +363,10 @@ public: /// Set the payload on a data. Payload can be passed as nullptr, if it is no memory will be copied. void setPayload(Data* data, const void* payload, size_t size); - /// Move ownership to + /// Move ownership to. + /// NOTE! The payload *must* be deallocatable via 'free' void moveOwned(Data* data, void* payload, size_t size); - /// Move unowned + /// Move unowned. The payload scope must last longer than the RiffContainer void setUnowned(Data* data, void* payload, size_t size); /// End a chunk 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; } |
