HLSL: Fix #1655; use "" for nullptr file names. Needs test cases.
authorJohn Kessenich <cepheus@frii.com>
Wed, 16 Jan 2019 09:07:51 +0000 (16:07 +0700)
committerJohn Kessenich <cepheus@frii.com>
Wed, 16 Jan 2019 09:07:51 +0000 (16:07 +0700)
glslang/Include/Common.h
glslang/MachineIndependent/preprocessor/PpContext.h [changed mode: 0755->0644]
hlsl/hlslParseHelper.cpp [changed mode: 0755->0644]

index b136dde..98e5a1a 100644 (file)
@@ -250,7 +250,8 @@ struct TSourceLoc {
             return nullptr;
         return name->c_str();
     }
-    TString* name; // descriptive name for this string
+    const char* getFilenameStr() const { return name == nullptr ? "" : name->c_str(); }
+    TString* name; // descriptive name for this string, when a textual name is available, otherwise nullptr
     int string;
     int line;
     int column;
old mode 100755 (executable)
new mode 100644 (file)
index 7b8b22e..73fe5e3
@@ -549,9 +549,9 @@ protected:
               scanner.setLine(startLoc.line);
               scanner.setString(startLoc.string);
 
-              scanner.setFile(startLoc.name->c_str(), 0);
-              scanner.setFile(startLoc.name->c_str(), 1);
-              scanner.setFile(startLoc.name->c_str(), 2);
+              scanner.setFile(startLoc.getFilenameStr(), 0);
+              scanner.setFile(startLoc.getFilenameStr(), 1);
+              scanner.setFile(startLoc.getFilenameStr(), 2);
         }
 
         // tInput methods:
old mode 100755 (executable)
new mode 100644 (file)
index d6dc2e8..72edbd7
@@ -133,7 +133,7 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner&
         // Print a message formated such that if you click on the message it will take you right to
         // the line through most UIs.
         const glslang::TSourceLoc& sourceLoc = input.getSourceLoc();
-        infoSink.info << sourceLoc.name->c_str() << "(" << sourceLoc.line << "): error at column " << sourceLoc.column
+        infoSink.info << sourceLoc.getFilenameStr() << "(" << sourceLoc.line << "): error at column " << sourceLoc.column
                       << ", HLSL parsing failed.\n";
         ++numErrors;
         return false;