From 16b2ccc670dd7958dc36c883fdb738841fd768df Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 27 Nov 2020 09:50:35 +0000 Subject: [PATCH] Fix preprocessing empty filenames in #line statements --- renderdoc/driver/shaders/dxbc/dxbc_container.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/renderdoc/driver/shaders/dxbc/dxbc_container.cpp b/renderdoc/driver/shaders/dxbc/dxbc_container.cpp index a92d2590d..3df3ac5b8 100644 --- a/renderdoc/driver/shaders/dxbc/dxbc_container.cpp +++ b/renderdoc/driver/shaders/dxbc/dxbc_container.cpp @@ -1784,13 +1784,17 @@ DXBCContainer::DXBCContainer(bytebuf &ByteCode, const rdcstr &debugInfoPath, Gra { *c = 0; + rdcstr fname = filename; + if(fname.empty()) + fname = "shader"; + // find the new destination file bool found = false; size_t dstFileIdx = 0; for(size_t f = 0; f < splitFiles.size(); f++) { - if(splitFiles[f].filename == filename) + if(splitFiles[f].filename == fname) { found = true; dstFileIdx = f; @@ -1805,11 +1809,11 @@ DXBCContainer::DXBCContainer(bytebuf &ByteCode, const rdcstr &debugInfoPath, Gra } else { - RDCWARN("Couldn't find filename '%s' in #line directive in debug info", filename); + RDCWARN("Couldn't find filename '%s' in #line directive in debug info", fname.c_str()); // make a dummy file to write into that won't be used. splitFiles.push_back(SplitFile()); - splitFiles.back().filename = filename; + splitFiles.back().filename = fname; splitFiles.back().modified = true; changedFile = true;