AK: Don't crash in HashTable::clear_with_capacity on an empty table

When calling clear_with_capacity on an empty HashTable/HashMap, a null
deref would occur when trying to memset() m_buckets. Checking that it
has capacity before clearing fixes the issue.
This commit is contained in:
Zaggy1024 2022-11-10 19:54:43 -06:00 committed by Andrew Kaster
commit a1300d3797
Notes: sideshowbarker 2024-07-18 03:23:00 +09:00
2 changed files with 11 additions and 0 deletions

View file

@ -291,6 +291,8 @@ public:
}
void clear_with_capacity()
{
if (m_capacity == 0)
return;
if constexpr (!Detail::IsTriviallyDestructible<T>) {
for (auto* bucket : *this)
bucket->~T();