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)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157550 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/DenseMap.h

index 1fc0eed706ed452962a58fc6d1feefbfcb4f2e13..0ceca926c682e493cb122fa97edbbfcf90f61472 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) {