use calloc instead of new/memset, it is more efficient
authorChris Lattner <sabre@nondot.org>
Wed, 4 Apr 2007 00:44:31 +0000 (00:44 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 4 Apr 2007 00:44:31 +0000 (00:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35644 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/StringMap.h
lib/Support/StringMap.cpp

index 3c5f76a3c1c1854f0c84ebdffc49f5fcfc0cd580..cb1dd9f132991d13af3201446c67c36181797b43 100644 (file)
@@ -279,7 +279,7 @@ public:
       if (I->Item && I->Item != getTombstoneVal())
         static_cast<MapEntryTy*>(I->Item)->Destroy(Allocator);
     }
-    delete [] TheTable;
+    free(TheTable);
   }
 };
   
index caf9ba350efc55426d72242b5fc9a464c1d6b973..e7263e247b3f654ece1bafc4573c82aa999bf859 100644 (file)
@@ -38,8 +38,7 @@ void StringMapImpl::init(unsigned InitSize) {
   NumItems = 0;
   NumTombstones = 0;
   
-  TheTable = new ItemBucket[NumBuckets+1]();
-  memset(TheTable, 0, NumBuckets*sizeof(ItemBucket));
+  TheTable = (ItemBucket*)calloc(NumBuckets+1, sizeof(ItemBucket));
   
   // Allocate one extra bucket, set it to look filled so the iterators stop at
   // end.
@@ -200,8 +199,7 @@ void StringMapImpl::RehashTable() {
   unsigned NewSize = NumBuckets*2;
   // Allocate one extra bucket which will always be non-empty.  This allows the
   // iterators to stop at end.
-  ItemBucket *NewTableArray = new ItemBucket[NewSize+1]();
-  memset(NewTableArray, 0, NewSize*sizeof(ItemBucket));
+  ItemBucket *NewTableArray =(ItemBucket*)calloc(NewSize+1, sizeof(ItemBucket));
   NewTableArray[NewSize].Item = (StringMapEntryBase*)2;
   
   // Rehash all the items into their new buckets.  Luckily :) we already have