summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/core/slang-riff.h5
-rw-r--r--source/slang/slang-ir-serialize.cpp8
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;
}