aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl
diff options
context:
space:
mode:
authorGravatar Ethan Nicholas <ethannicholas@google.com>2018-01-08 15:36:28 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-01-08 21:28:11 +0000
commit2c33e3e3f40ebcde0bfa6d22cc34b6b97526fb36 (patch)
treee54a5e2fa1e05a940cedbf898ebb59a39c95c967 /src/sksl
parentc5980d0aa3e97f07a4f5bc413a2c5bc5ed3bc973 (diff)
fixed inconsistent ordering of SkSL enums
Bug: skia: Change-Id: Ifa11117f804ee2dd233d4a2a0241e567aecc5307 Reviewed-on: https://skia-review.googlesource.com/92103 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'src/sksl')
-rw-r--r--src/sksl/SkSLString.cpp8
-rw-r--r--src/sksl/SkSLString.h1
-rw-r--r--src/sksl/ir/SkSLSymbolTable.cpp4
-rw-r--r--src/sksl/ir/SkSLSymbolTable.h8
4 files changed, 15 insertions, 6 deletions
diff --git a/src/sksl/SkSLString.cpp b/src/sksl/SkSLString.cpp
index c9242d398e..7581e0cf3c 100644
--- a/src/sksl/SkSLString.cpp
+++ b/src/sksl/SkSLString.cpp
@@ -165,6 +165,14 @@ bool StringFragment::operator!=(const char* s) const {
return 0 != s[fLength];
}
+bool StringFragment::operator<(StringFragment other) const {
+ int comparison = strncmp(fChars, other.fChars, std::min(fLength, other.fLength));
+ if (comparison) {
+ return comparison < 0;
+ }
+ return fLength < other.fLength;
+}
+
bool operator==(const char* s1, StringFragment s2) {
return s2 == s1;
}
diff --git a/src/sksl/SkSLString.h b/src/sksl/SkSLString.h
index 143f7c6576..417a28b23a 100644
--- a/src/sksl/SkSLString.h
+++ b/src/sksl/SkSLString.h
@@ -46,6 +46,7 @@ struct StringFragment {
bool operator!=(const char* s) const;
bool operator==(StringFragment s) const;
bool operator!=(StringFragment s) const;
+ bool operator<(StringFragment s) const;
const char* fChars;
size_t fLength;
diff --git a/src/sksl/ir/SkSLSymbolTable.cpp b/src/sksl/ir/SkSLSymbolTable.cpp
index 701eb75cf7..90a1189696 100644
--- a/src/sksl/ir/SkSLSymbolTable.cpp
+++ b/src/sksl/ir/SkSLSymbolTable.cpp
@@ -120,11 +120,11 @@ void SymbolTable::markAllFunctionsBuiltin() {
}
}
-std::unordered_map<StringFragment, const Symbol*>::iterator SymbolTable::begin() {
+std::map<StringFragment, const Symbol*>::iterator SymbolTable::begin() {
return fSymbols.begin();
}
-std::unordered_map<StringFragment, const Symbol*>::iterator SymbolTable::end() {
+std::map<StringFragment, const Symbol*>::iterator SymbolTable::end() {
return fSymbols.end();
}
diff --git a/src/sksl/ir/SkSLSymbolTable.h b/src/sksl/ir/SkSLSymbolTable.h
index f245964c35..0a35912ddf 100644
--- a/src/sksl/ir/SkSLSymbolTable.h
+++ b/src/sksl/ir/SkSLSymbolTable.h
@@ -8,8 +8,8 @@
#ifndef SKSL_SYMBOLTABLE
#define SKSL_SYMBOLTABLE
+#include <map>
#include <memory>
-#include <unordered_map>
#include <vector>
#include "SkSLErrorReporter.h"
#include "SkSLSymbol.h"
@@ -43,9 +43,9 @@ public:
void markAllFunctionsBuiltin();
- std::unordered_map<StringFragment, const Symbol*>::iterator begin();
+ std::map<StringFragment, const Symbol*>::iterator begin();
- std::unordered_map<StringFragment, const Symbol*>::iterator end();
+ std::map<StringFragment, const Symbol*>::iterator end();
const std::shared_ptr<SymbolTable> fParent;
@@ -56,7 +56,7 @@ private:
std::vector<std::unique_ptr<IRNode>> fOwnedNodes;
- std::unordered_map<StringFragment, const Symbol*> fSymbols;
+ std::map<StringFragment, const Symbol*> fSymbols;
ErrorReporter& fErrorReporter;
};