BLI: fix Set.lookup_key_or_add

This commit is contained in:
Jacques Lucke 2021-03-25 15:31:09 +01:00
parent 56df673be2
commit 9b42626918
2 changed files with 4 additions and 2 deletions

View File

@ -788,6 +788,8 @@ class Set {
template<typename ForwardKey>
const Key &lookup_key_or_add__impl(ForwardKey &&key, const uint64_t hash)
{
this->ensure_can_add();
SET_SLOT_PROBING_BEGIN (hash, slot) {
if (slot.contains(key, is_equal_, hash)) {
return *slot.key();

View File

@ -456,8 +456,8 @@ TEST(set, LookupKeyPtr)
TEST(set, LookupKeyOrAdd)
{
Set<MyKeyType> set;
set.add({1, 10});
set.add({2, 20});
set.lookup_key_or_add({1, 10});
set.lookup_key_or_add({2, 20});
EXPECT_EQ(set.size(), 2);
EXPECT_EQ(set.lookup_key_or_add({2, 40}).attached_data, 20);
EXPECT_EQ(set.size(), 2);