From 5bf84a5b0e243d0fa53aeb2069f8f691d9371cbc Mon Sep 17 00:00:00 2001 From: Hendiadyoin1 Date: Thu, 23 Jun 2022 17:00:41 +0200 Subject: [PATCH] AK: Zero previous pointer *after* fixing the insertion list in HashTable --- AK/HashTable.h | 2 +- Tests/AK/TestHashTable.cpp | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/AK/HashTable.h b/AK/HashTable.h index e961e75a0fe..ad6f7de16e0 100644 --- a/AK/HashTable.h +++ b/AK/HashTable.h @@ -704,11 +704,11 @@ private: bucket.previous->next = bucket.next; else m_collection_data.head = bucket.next; - bucket.previous = nullptr; if (bucket.next) bucket.next->previous = bucket.previous; else m_collection_data.tail = bucket.previous; + bucket.previous = nullptr; bucket.next = nullptr; } } diff --git a/Tests/AK/TestHashTable.cpp b/Tests/AK/TestHashTable.cpp index fc1e512045d..410681a352c 100644 --- a/Tests/AK/TestHashTable.cpp +++ b/Tests/AK/TestHashTable.cpp @@ -300,3 +300,12 @@ BENCHMARK_CASE(benchmark_thrashing) table.remove(i); } } + +TEST_CASE(reinsertion) +{ + OrderedHashTable map; + map.set("ytidb::LAST_RESULT_ENTRY_KEY"); + map.set("__sak"); + map.remove("__sak"); + map.set("__sak"); +}