diff --git a/AK/HashTable.h b/AK/HashTable.h index e961e75a0f..ad6f7de16e 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 fc1e512045..410681a352 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"); +}