Browse Source

AK: Rename double_hash to rehash_for_collision

The name is currently quite confusing as it indicates it hashes doubles.
Timothy Flynn 2 năm trước cách đây
mục cha
commit
4f5353cbb8
3 tập tin đã thay đổi với 8 bổ sung8 xóa
  1. 1 1
      AK/HashFunctions.h
  2. 3 3
      AK/HashTable.h
  3. 4 4
      Tests/AK/TestHashFunctions.cpp

+ 1 - 1
AK/HashFunctions.h

@@ -19,7 +19,7 @@ constexpr unsigned int_hash(u32 key)
     return key;
 }
 
-constexpr unsigned double_hash(u32 key)
+constexpr unsigned rehash_for_collision(u32 key)
 {
     unsigned const magic = 0xBA5EDB01;
     if (key == magic)

+ 3 - 3
AK/HashTable.h

@@ -594,7 +594,7 @@ private:
                     }
                 } else if (target_bucket->state == BucketState::Rehashed) {
                     // If the target bucket is already re-hashed, we do normal probing.
-                    target_hash = double_hash(target_hash);
+                    target_hash = rehash_for_collision(target_hash);
                     target_bucket = &m_buckets[target_hash % m_capacity];
                 } else {
                     VERIFY(target_bucket->state != BucketState::End);
@@ -676,7 +676,7 @@ private:
             if (bucket.state != BucketState::Used && bucket.state != BucketState::Deleted)
                 return nullptr;
 
-            hash = double_hash(hash);
+            hash = rehash_for_collision(hash);
         }
     }
 
@@ -703,7 +703,7 @@ private:
                     return const_cast<BucketType*>(first_empty_bucket);
             }
 
-            hash = double_hash(hash);
+            hash = rehash_for_collision(hash);
         }
     }
     [[nodiscard]] BucketType& lookup_for_writing(T const& value)

+ 4 - 4
Tests/AK/TestHashFunctions.cpp

@@ -15,11 +15,11 @@ TEST_CASE(int_hash)
     static_assert(int_hash(0) == 1177991625u);
 }
 
-TEST_CASE(double_hash)
+TEST_CASE(rehash_for_collision)
 {
-    static_assert(double_hash(666) == 171644115u);
-    static_assert(double_hash(0) == 1189591134u);
-    static_assert(double_hash(0xBA5EDB01) == 0u);
+    static_assert(rehash_for_collision(666) == 171644115u);
+    static_assert(rehash_for_collision(0) == 1189591134u);
+    static_assert(rehash_for_collision(0xBA5EDB01) == 0u);
 }
 
 TEST_CASE(pair_int_hash)