diff --git a/src/compiler/nir/nir_instr_set.c b/src/compiler/nir/nir_instr_set.c index dce7b2ac352..2d652503301 100644 --- a/src/compiler/nir/nir_instr_set.c +++ b/src/compiler/nir/nir_instr_set.c @@ -807,7 +807,7 @@ nir_instr_set_add_or_rewrite(struct set *instr_set, nir_instr *instr) if (!instr_can_rewrite(instr)) return false; - struct set_entry *e = _mesa_set_search_or_add(instr_set, instr); + struct set_entry *e = _mesa_set_search_or_add(instr_set, instr, NULL); nir_instr *match = (nir_instr *) e->key; if (match != instr) { nir_ssa_def *def = nir_instr_get_dest_ssa_def(instr); diff --git a/src/util/set.c b/src/util/set.c index f071aca24fe..fe945e72dd1 100644 --- a/src/util/set.c +++ b/src/util/set.c @@ -510,15 +510,15 @@ _mesa_set_search_and_add_pre_hashed(struct set *set, uint32_t hash, } struct set_entry * -_mesa_set_search_or_add(struct set *set, const void *key) +_mesa_set_search_or_add(struct set *set, const void *key, bool *found) { assert(set->key_hash_function); - return set_search_or_add(set, set->key_hash_function(key), key, NULL); + return set_search_or_add(set, set->key_hash_function(key), key, found); } struct set_entry * _mesa_set_search_or_add_pre_hashed(struct set *set, uint32_t hash, - const void *key) + const void *key, bool *found) { assert(set->key_hash_function == NULL || hash == set->key_hash_function(key)); diff --git a/src/util/set.h b/src/util/set.h index 1836864213f..cabff35dae8 100644 --- a/src/util/set.h +++ b/src/util/set.h @@ -81,10 +81,10 @@ struct set_entry * _mesa_set_add_pre_hashed(struct set *set, uint32_t hash, const void *key); struct set_entry * -_mesa_set_search_or_add(struct set *set, const void *key); +_mesa_set_search_or_add(struct set *set, const void *key, bool *found); struct set_entry * _mesa_set_search_or_add_pre_hashed(struct set *set, uint32_t hash, - const void *key); + const void *key, bool *found); struct set_entry * _mesa_set_search(const struct set *set, const void *key); diff --git a/src/util/tests/set/set_test.cpp b/src/util/tests/set/set_test.cpp index 6eda08de698..6b9c993e3fd 100644 --- a/src/util/tests/set/set_test.cpp +++ b/src/util/tests/set/set_test.cpp @@ -143,12 +143,16 @@ TEST(set, search_or_add) _mesa_set_add(s, &b); EXPECT_EQ(s->entries, 2); - struct set_entry *entry = _mesa_set_search_or_add(s, &c); + bool found = false; + struct set_entry *entry = _mesa_set_search_or_add(s, &c, &found); EXPECT_EQ(entry->key, (void *)&b); + EXPECT_EQ(found, true); EXPECT_EQ(s->entries, 2); - struct set_entry *entry3 = _mesa_set_search_or_add(s, &d); + found = false; + struct set_entry *entry3 = _mesa_set_search_or_add(s, &d, &found); EXPECT_EQ(entry3->key, &d); + EXPECT_EQ(found, false); EXPECT_EQ(s->entries, 3); _mesa_set_destroy(s, NULL);