diff options
-rw-r--r-- | include/llvm/ADT/DenseMap.h | 3 | ||||
-rw-r--r-- | include/llvm/Support/YAMLTraits.h | 12 | ||||
-rw-r--r-- | lib/Object/YAML.cpp | 1 | ||||
-rw-r--r-- | lib/Support/YAMLTraits.cpp | 4 |
4 files changed, 8 insertions, 12 deletions
diff --git a/include/llvm/ADT/DenseMap.h b/include/llvm/ADT/DenseMap.h index d5aa8646b3..71069ff470 100644 --- a/include/llvm/ADT/DenseMap.h +++ b/include/llvm/ADT/DenseMap.h @@ -606,6 +606,9 @@ public: } void init(unsigned InitBuckets) { + assert(!KeyInfoT::isEqual(this->getEmptyKey(), this->getTombstoneKey()) && + "Bad implementation of KeyInfoT: empty key and tombstone key " + "should be different"); if (allocateBuckets(InitBuckets)) { this->BaseT::initEmpty(); } else { diff --git a/include/llvm/Support/YAMLTraits.h b/include/llvm/Support/YAMLTraits.h index 801868ff1f..0f57f44340 100644 --- a/include/llvm/Support/YAMLTraits.h +++ b/include/llvm/Support/YAMLTraits.h @@ -14,7 +14,7 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DenseMapInfo.h" #include "llvm/ADT/SmallVector.h" -#include "llvm/ADT/StringExtras.h" +#include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/ADT/Twine.h" @@ -760,15 +760,7 @@ private: } static inline bool classof(const MapHNode *) { return true; } - struct StrMappingInfo { - static StringRef getEmptyKey() { return StringRef(); } - static StringRef getTombstoneKey() { return StringRef(" ", 0); } - static unsigned getHashValue(StringRef const val) { - return llvm::HashString(val); } - static bool isEqual(StringRef const lhs, - StringRef const rhs) { return lhs.equals(rhs); } - }; - typedef llvm::DenseMap<StringRef, HNode*, StrMappingInfo> NameToNode; + typedef llvm::StringMap<HNode*> NameToNode; bool isValidKey(StringRef key); diff --git a/lib/Object/YAML.cpp b/lib/Object/YAML.cpp index 5b665032bb..21bacb8578 100644 --- a/lib/Object/YAML.cpp +++ b/lib/Object/YAML.cpp @@ -13,6 +13,7 @@ //===----------------------------------------------------------------------===// #include "llvm/Object/YAML.h" +#include "llvm/ADT/StringExtras.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; diff --git a/lib/Support/YAMLTraits.cpp b/lib/Support/YAMLTraits.cpp index 1e42b63e8d..b0cd415186 100644 --- a/lib/Support/YAMLTraits.cpp +++ b/lib/Support/YAMLTraits.cpp @@ -127,8 +127,8 @@ void Input::endMapping() { return; for (MapHNode::NameToNode::iterator i = MN->Mapping.begin(), End = MN->Mapping.end(); i != End; ++i) { - if (!MN->isValidKey(i->first)) { - setError(i->second, Twine("unknown key '") + i->first + "'"); + if (!MN->isValidKey(i->first())) { + setError(i->second, Twine("unknown key '") + i->first() + "'"); break; } } |