summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/ADT/DenseMap.h3
-rw-r--r--include/llvm/Support/YAMLTraits.h12
-rw-r--r--lib/Object/YAML.cpp1
-rw-r--r--lib/Support/YAMLTraits.cpp4
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;
}
}