Don't rely on ReplaceChunk silently doing nothing for missing chunks

This commit is contained in:
baldurk
2024-01-23 10:26:13 +00:00
parent e9430a02e0
commit 5bb66f67de
@@ -56,9 +56,12 @@ ProgramEditor::ProgramEditor(const DXBC::DXBCContainer *container, bytebuf &outB
ProgramEditor::~ProgramEditor()
{
rdcarray<uint32_t> encoded = EncodeProgram();
// only one of these fourcc's will be present, so we just try to replace both
DXBC::DXBCContainer::ReplaceChunk(m_OutBlob, MAKE_FOURCC('S', 'H', 'E', 'X'), encoded);
DXBC::DXBCContainer::ReplaceChunk(m_OutBlob, MAKE_FOURCC('S', 'H', 'D', 'R'), encoded);
// only one of these fourcc's will be present
size_t dummy = 0;
if(DXBC::DXBCContainer::FindChunk(m_OutBlob, DXBC::FOURCC_SHEX, dummy))
DXBC::DXBCContainer::ReplaceChunk(m_OutBlob, MAKE_FOURCC('S', 'H', 'E', 'X'), encoded);
if(DXBC::DXBCContainer::FindChunk(m_OutBlob, DXBC::FOURCC_SHDR, dummy))
DXBC::DXBCContainer::ReplaceChunk(m_OutBlob, MAKE_FOURCC('S', 'H', 'D', 'R'), encoded);
}
/*