diff --git a/renderdoc/core/core.cpp b/renderdoc/core/core.cpp index 5d0129283..ee555b1c9 100644 --- a/renderdoc/core/core.cpp +++ b/renderdoc/core/core.cpp @@ -2455,8 +2455,9 @@ bool RenderDoc::GetTrackedFileData(const rdcstr &nickname, bytebuf &data) const { if(f.nickname == nickname) { - data = f.data; - return true; + if(f.hasData) + data = f.data; + return f.hasData; } } return false; @@ -2595,6 +2596,7 @@ RDResult RenderDoc::ReadExternalFiles(RDCFile *rdc) { file.data = f.data; file.filepath.clear(); + file.hasData = true; break; } } diff --git a/renderdoc/core/core.h b/renderdoc/core/core.h index f9b69f6d6..e51ba7996 100644 --- a/renderdoc/core/core.h +++ b/renderdoc/core/core.h @@ -656,11 +656,18 @@ private: struct TrackedFile { TrackedFile() = default; - TrackedFile(const rdcstr &name, const rdcstr &path) : nickname(name), filepath(path) {} - TrackedFile(const rdcstr &name, const bytebuf &contents) : nickname(name), data(contents) {} + TrackedFile(const rdcstr &name, const rdcstr &path) + : nickname(name), filepath(path), hasData(false) + { + } + TrackedFile(const rdcstr &name, const bytebuf &contents) + : nickname(name), data(contents), hasData(true) + { + } rdcstr nickname; rdcstr filepath; bytebuf data; + bool hasData; }; void SyncAvailableGPUThread();