From 7685cb6f48e229026bfb15810727ffb35d1de30b Mon Sep 17 00:00:00 2001 From: Brogolem35 Date: Sun, 21 Sep 2025 10:19:12 +0300 Subject: [PATCH] Optimize clear --- core/templates/hash_set.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/templates/hash_set.h b/core/templates/hash_set.h index 6fa3936208..d5933e54d4 100644 --- a/core/templates/hash_set.h +++ b/core/templates/hash_set.h @@ -241,12 +241,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) { + for (uint32_t i = 0; i < _size; i++) { + _keys[i].~TKey(); + } } _size = 0;