From 43bb5bd1885913d4edd16304c08d37f34d4a44b7 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 20 Oct 2018 17:36:13 -0600 Subject: [PATCH] Fix #1536: use string instead of TString for uniform-location override. --- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/iomapper.cpp | 2 +- .../MachineIndependent/localintermediate.h | 23 +++++++++++-------- 3 files changed, 15 insertions(+), 12 deletions(-) mode change 100644 => 100755 glslang/MachineIndependent/iomapper.cpp mode change 100644 => 100755 glslang/MachineIndependent/localintermediate.h diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index b5951928..900a0b43 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -1,3 +1,3 @@ // This header is generated by the make-revision script. -#define GLSLANG_PATCH_LEVEL 2904 +#define GLSLANG_PATCH_LEVEL 2933 diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp old mode 100644 new mode 100755 index e68e32fb..46c75583 --- a/glslang/MachineIndependent/iomapper.cpp +++ b/glslang/MachineIndependent/iomapper.cpp @@ -457,7 +457,7 @@ struct TDefaultIoResolverBase : public glslang::TIoMapResolver int location = intermediate.getUniformLocationOverride(name); if (location != -1) - return location; + return location; location = nextUniformLocation; diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h old mode 100644 new mode 100755 index 59fbaa98..99f777f1 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -664,7 +664,8 @@ public: const std::string& getSourceFile() const { return sourceFile; } void addSourceText(const char* text) { sourceText = sourceText + text; } const std::string& getSourceText() const { return sourceText; } - void addProcesses(const std::vector& p) { + void addProcesses(const std::vector& p) + { for (int i = 0; i < (int)p.size(); ++i) processes.addProcess(p[i]); } @@ -672,18 +673,20 @@ public: void addProcessArgument(const std::string& arg) { processes.addArgument(arg); } const std::vector& getProcesses() const { return processes.getProcesses(); } - void addUniformLocationOverride(const TString& name, int location) + void addUniformLocationOverride(const char* nameStr, int location) { - uniformLocationOverrides[name] = location; + std::string name = nameStr; + uniformLocationOverrides[name] = location; } - int getUniformLocationOverride(const TString& name) const + int getUniformLocationOverride(const char* nameStr) const { - auto pos = uniformLocationOverrides.find(name); - if (pos == uniformLocationOverrides.end()) - return -1; - else - return pos->second; + std::string name = nameStr; + auto pos = uniformLocationOverrides.find(name); + if (pos == uniformLocationOverrides.end()) + return -1; + else + return pos->second; } void setUniformLocationBase(int base) { uniformLocationBase = base; } @@ -814,7 +817,7 @@ protected: bool needToLegalize; bool binaryDoubleOutput; - std::unordered_map uniformLocationOverrides; + std::unordered_map uniformLocationOverrides; int uniformLocationBase; private: