Merge pull request #108698 from Brogolem35/hashset_clear_optimize
Optimize and clean up HashSet::clear
This commit is contained in:
@ -242,12 +242,14 @@ public:
|
||||
if (_keys == nullptr || _size == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t capacity = hash_table_size_primes[_capacity_idx];
|
||||
for (uint32_t i = 0; i < capacity; i++) {
|
||||
_hashes[i] = EMPTY_HASH;
|
||||
}
|
||||
for (uint32_t i = 0; i < _size; i++) {
|
||||
_keys[i].~TKey();
|
||||
memset(_hashes, EMPTY_HASH, sizeof(EMPTY_HASH) * capacity);
|
||||
|
||||
if constexpr (!std::is_trivially_destructible_v<TKey>) {
|
||||
for (uint32_t i = 0; i < _size; i++) {
|
||||
_keys[i].~TKey();
|
||||
}
|
||||
}
|
||||
|
||||
_size = 0;
|
||||
|
||||
Reference in New Issue
Block a user