mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
optimize StringMap::clear
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53009 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fce6e546aa
commit
509e4f30e8
@ -335,8 +335,16 @@ public:
|
||||
|
||||
// clear - Empties out the StringMap
|
||||
void clear() {
|
||||
while (!empty())
|
||||
erase(begin());
|
||||
if (empty()) return;
|
||||
|
||||
// Zap all values, resetting the keys back to non-present (not tombstone),
|
||||
// which is safe because we're removing all elements.
|
||||
for (ItemBucket *I = TheTable, *E = TheTable+NumBuckets; I != E; ++I) {
|
||||
if (I->Item && I->Item != getTombstoneVal()) {
|
||||
static_cast<MapEntryTy*>(I->Item)->Destroy(Allocator);
|
||||
I->Item = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// GetOrCreateValue - Look up the specified key in the table. If a value
|
||||
@ -398,10 +406,7 @@ public:
|
||||
}
|
||||
|
||||
~StringMap() {
|
||||
for (ItemBucket *I = TheTable, *E = TheTable+NumBuckets; I != E; ++I) {
|
||||
if (I->Item && I->Item != getTombstoneVal())
|
||||
static_cast<MapEntryTy*>(I->Item)->Destroy(Allocator);
|
||||
}
|
||||
clear();
|
||||
free(TheTable);
|
||||
}
|
||||
private:
|
||||
|
Loading…
Reference in New Issue
Block a user