Clear the whole table including the tombstones, since the tombstone count will
authorPedro Artigas <partigas@apple.com>
Thu, 21 Feb 2013 21:32:00 +0000 (21:32 +0000)
committerPedro Artigas <partigas@apple.com>
Thu, 21 Feb 2013 21:32:00 +0000 (21:32 +0000)
be set to zero that is what it was intended. Should improve performance of
the data structure when clear is invoked frequently (both compile time and
memory usage).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175799 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/StringMap.h

index 7e40a075ed7481cc216bfeeea52f6693a8103c9b..d01437b61c2bb8bcaeff0baf851ed07805f61850 100644 (file)
@@ -338,8 +338,8 @@ public:
       StringMapEntryBase *&Bucket = TheTable[I];
       if (Bucket && Bucket != getTombstoneVal()) {
         static_cast<MapEntryTy*>(Bucket)->Destroy(Allocator);
-        Bucket = 0;
       }
+      Bucket = 0;
     }
 
     NumItems = 0;