From: Torok Edwin Date: Tue, 21 Jul 2009 18:01:37 +0000 (+0000) Subject: Add freed memory poisoning in !NDEBUG mode for DenseMap. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=26aafc1ab5e09d5b4fde99cc029f53078ceab5dd;p=platform%2Fupstream%2Fllvm.git Add freed memory poisoning in !NDEBUG mode for DenseMap. llvm-svn: 76597 --- diff --git a/llvm/include/llvm/ADT/DenseMap.h b/llvm/include/llvm/ADT/DenseMap.h index e18be89..c8a90eb 100644 --- a/llvm/include/llvm/ADT/DenseMap.h +++ b/llvm/include/llvm/ADT/DenseMap.h @@ -17,6 +17,7 @@ #include "llvm/Support/PointerLikeTypeTraits.h" #include "llvm/Support/MathExtras.h" #include +#include #include #include @@ -160,6 +161,9 @@ public: P->second.~ValueT(); P->first.~KeyT(); } +#ifndef NDEBUG + memset(Buckets, 0x5a, sizeof(BucketT)*NumBuckets); +#endif operator delete(Buckets); } @@ -318,8 +322,12 @@ private: NumEntries = other.NumEntries; NumTombstones = other.NumTombstones; - if (NumBuckets) + if (NumBuckets) { +#ifndef NDEBUG + memset(Buckets, 0x5a, sizeof(BucketT)*NumBuckets); +#endif operator delete(Buckets); + } Buckets = static_cast(operator new(sizeof(BucketT) * other.NumBuckets)); @@ -465,6 +473,9 @@ private: B->first.~KeyT(); } +#ifndef NDEBUG + memset(OldBuckets, 0x5a, sizeof(BucketT)*OldNumBuckets); +#endif // Free the old table. operator delete(OldBuckets); } @@ -495,6 +506,9 @@ private: B->first.~KeyT(); } +#ifndef NDEBUG + memset(OldBuckets, 0x5a, sizeof(BucketT)*OldNumBuckets); +#endif // Free the old table. operator delete(OldBuckets);