From 4c76b275907cf2d764f3fc51468d1c58635a10c1 Mon Sep 17 00:00:00 2001 From: Theresa Foley <10618364+tangent-vector@users.noreply.github.com> Date: Mon, 12 May 2025 10:28:05 -0700 Subject: Cleanups related to RIFF support (#7041) --- source/slang/slang-serialize-ir.cpp | 42 ++++++++++++++----------------------- 1 file changed, 16 insertions(+), 26 deletions(-) (limited to 'source/slang/slang-serialize-ir.cpp') diff --git a/source/slang/slang-serialize-ir.cpp b/source/slang/slang-serialize-ir.cpp index bdea2faaa..f03f46da8 100644 --- a/source/slang/slang-serialize-ir.cpp +++ b/source/slang/slang-serialize-ir.cpp @@ -334,51 +334,43 @@ Result IRSerialWriter::write( Result _writeInstArrayChunk( FourCC chunkId, const List& array, - RiffContainer* container) + RIFF::BuildCursor& cursor) { - typedef RiffContainer::Chunk Chunk; - typedef RiffContainer::ScopeChunk ScopeChunk; - if (array.getCount() == 0) { return SLANG_OK; } - return SerialRiffUtil::writeArrayChunk(chunkId, array, container); + return SerialRiffUtil::writeArrayChunk(chunkId, array, cursor); } -/* static */ Result IRSerialWriter::writeContainer( - const IRSerialData& data, - RiffContainer* container) +/* static */ Result IRSerialWriter::writeTo(const IRSerialData& data, RIFF::BuildCursor& cursor) { - typedef RiffContainer::Chunk Chunk; - typedef RiffContainer::ScopeChunk ScopeChunk; - - ScopeChunk scopeModule(container, Chunk::Kind::List, Bin::kIRModuleFourCc); + SLANG_SCOPED_RIFF_BUILDER_LIST_CHUNK(cursor, Bin::kIRModuleFourCc); - SLANG_RETURN_ON_FAIL(_writeInstArrayChunk(Bin::kInstFourCc, data.m_insts, container)); + SLANG_RETURN_ON_FAIL(_writeInstArrayChunk(Bin::kInstFourCc, data.m_insts, cursor)); SLANG_RETURN_ON_FAIL( - SerialRiffUtil::writeArrayChunk(Bin::kChildRunFourCc, data.m_childRuns, container)); + SerialRiffUtil::writeArrayChunk(Bin::kChildRunFourCc, data.m_childRuns, cursor)); SLANG_RETURN_ON_FAIL(SerialRiffUtil::writeArrayChunk( Bin::kExternalOperandsFourCc, data.m_externalOperands, - container)); + cursor)); SLANG_RETURN_ON_FAIL(SerialRiffUtil::writeArrayChunk( SerialBinary::kStringTableFourCc, data.m_stringTable, - container)); + cursor)); SLANG_RETURN_ON_FAIL(SerialRiffUtil::writeArrayChunk( Bin::kUInt32RawSourceLocFourCc, data.m_rawSourceLocs, - container)); + cursor)); if (data.m_debugSourceLocRuns.getCount()) { SerialRiffUtil::writeArrayChunk( Bin::kDebugSourceLocRunFourCc, data.m_debugSourceLocRuns, - container); + cursor); } return SLANG_OK; @@ -417,31 +409,29 @@ Result _writeInstArrayChunk( // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IRSerialReader !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -static Result _readInstArrayChunk( - RiffContainer::DataChunk* chunk, - List& arrayOut) +static Result _readInstArrayChunk(RIFF::DataChunk const* chunk, List& arrayOut) { SerialRiffUtil::ListResizerForType resizer(arrayOut); return SerialRiffUtil::readArrayChunk(chunk, resizer); } -/* static */ Result IRSerialReader::readContainer( - RiffContainer::ListChunk* module, +/* static */ Result IRSerialReader::readFrom( + IRModuleChunk const* irModuleChunk, IRSerialData* outData) { typedef IRSerialBinary Bin; outData->clear(); - for (RiffContainer::Chunk* chunk = module->m_containedChunks; chunk; chunk = chunk->m_next) + for (auto chunk : irModuleChunk->getChildren()) { - RiffContainer::DataChunk* dataChunk = as(chunk); + auto dataChunk = as(chunk); if (!dataChunk) { continue; } - switch (dataChunk->m_fourCC) + switch (dataChunk->getType()) { case Bin::kInstFourCc: { -- cgit v1.2.3