From 8e337120133c746640246feb9383556d383a94be Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Sun, 27 May 2012 22:53:10 +0000 Subject: [PATCH] DenseMap: Use an early exit when there is nothing to do in DestroyAll(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157550 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/DenseMap.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/include/llvm/ADT/DenseMap.h b/include/llvm/ADT/DenseMap.h index 1fc0eed706e..0ceca926c68 100644 --- a/include/llvm/ADT/DenseMap.h +++ b/include/llvm/ADT/DenseMap.h @@ -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) {