summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-serialize-types.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-serialize-types.cpp')
-rw-r--r--source/slang/slang-serialize-types.cpp25
1 files changed, 11 insertions, 14 deletions
diff --git a/source/slang/slang-serialize-types.cpp b/source/slang/slang-serialize-types.cpp
index 2e6e56bb4..ca3bde608 100644
--- a/source/slang/slang-serialize-types.cpp
+++ b/source/slang/slang-serialize-types.cpp
@@ -149,41 +149,38 @@ struct ByteReader
const void* data,
size_t numEntries,
size_t typeSize,
- RiffContainer* container)
+ RIFF::BuildCursor& cursor)
{
- typedef RiffContainer::Chunk Chunk;
- typedef RiffContainer::ScopeChunk ScopeChunk;
-
if (numEntries == 0)
{
return SLANG_OK;
}
- ScopeChunk scope(container, Chunk::Kind::Data, chunkId);
+ SLANG_SCOPED_RIFF_BUILDER_DATA_CHUNK(cursor, chunkId);
SerialBinary::ArrayHeader header;
header.numEntries = uint32_t(numEntries);
- container->write(&header, sizeof(header));
- container->write(data, typeSize * numEntries);
+ cursor.addData(&header, sizeof(header));
+ cursor.addData(data, typeSize * numEntries);
return SLANG_OK;
}
/* static */ Result SerialRiffUtil::readArrayChunk(
- RiffContainer::DataChunk* dataChunk,
+ RIFF::DataChunk const* dataChunk,
ListResizer& listOut)
{
typedef SerialBinary Bin;
- RiffReadHelper read = dataChunk->asReadHelper();
- const size_t typeSize = listOut.getTypeSize();
+ MemoryReader reader(dataChunk->getPayload(), dataChunk->getPayloadSize());
+ const Size typeSize = listOut.getTypeSize();
Bin::ArrayHeader header;
- SLANG_RETURN_ON_FAIL(read.read(header));
- const size_t payloadSize = header.numEntries * typeSize;
- SLANG_ASSERT(payloadSize == read.getRemainingSize());
+ SLANG_RETURN_ON_FAIL(reader.read(header));
+ const Size payloadSize = header.numEntries * typeSize;
+ SLANG_ASSERT(payloadSize == reader.getRemainingSize());
void* dst = listOut.setSize(header.numEntries);
- ::memcpy(dst, read.getData(), payloadSize);
+ ::memcpy(dst, reader.getRemainingData(), payloadSize);
return SLANG_OK;
}