RegisterPresssureTracker: Track live physical register by unit.
[oota-llvm.git] / include / llvm / ADT / StringSet.h
index 00048361e86f2906b936db48a2d8004de244f2eb..b69a964a23bae933d544cf54638eff30a091f152 100644 (file)
@@ -15,7 +15,6 @@
 #define LLVM_ADT_STRINGSET_H
 
 #include "llvm/ADT/StringMap.h"
-#include <cassert>
 
 namespace llvm {
 
@@ -26,12 +25,17 @@ namespace llvm {
   class StringSet : public llvm::StringMap<char, AllocatorTy> {
     typedef llvm::StringMap<char, AllocatorTy> base;
   public:
-    bool insert(const std::string& InLang) {
+    bool insert(StringRef InLang) {
       assert(!InLang.empty());
-      const char* KeyStart = &InLang[0];
-      const char* KeyEnd = KeyStart + InLang.size();
-      return base::insert(llvm::StringMapEntry<char>::
-                          Create(KeyStart, KeyEnd, base::getAllocator(), '+'));
+      const char *KeyStart = InLang.data();
+      const char *KeyEnd = KeyStart + InLang.size();
+      llvm::StringMapEntry<char> *Entry = llvm::StringMapEntry<char>::
+                            Create(KeyStart, KeyEnd, base::getAllocator(), '+');
+      if (!base::insert(Entry)) {
+        Entry->Destroy(base::getAllocator());
+        return false;
+      }
+      return true;
     }
   };
 }