DenseMap: Use an early exit when there is nothing to do in DestroyAll().
authorBenjamin Kramer <benny.kra@googlemail.com>
Sun, 27 May 2012 22:53:10 +0000 (22:53 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Sun, 27 May 2012 22:53:10 +0000 (22:53 +0000)
llvm-svn: 157550

llvm/include/llvm/ADT/DenseMap.h

index 1fc0eed..0ceca92 100644 (file)
@@ -273,6 +273,9 @@ public:
 
 private:
   void DestroyAll() {
+    if (NumBuckets == 0) // Nothing to do.
+      return;
+
     const KeyT EmptyKey = getEmptyKey(), TombstoneKey = getTombstoneKey();
     for (BucketT *P = Buckets, *E = Buckets+NumBuckets; P != E; ++P) {
       if (!KeyInfoT::isEqual(P->first, EmptyKey) &&
@@ -281,12 +284,10 @@ private:
       P->first.~KeyT();
     }
 
-    if (NumBuckets) {
 #ifndef NDEBUG
-      memset((void*)Buckets, 0x5a, sizeof(BucketT)*NumBuckets);
+    memset((void*)Buckets, 0x5a, sizeof(BucketT)*NumBuckets);
 #endif
-      operator delete(Buckets);
-    }
+    operator delete(Buckets);
   }
 
   void CopyFrom(const DenseMap& other) {