Mesa (master): util/set: add the found param to search_or_add
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jan 14 14:41:22 UTC 2021
Module: Mesa
Branch: master
Commit: 491e7decad0f46b6d5f2e517cc0ea18193cf2f33
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=491e7decad0f46b6d5f2e517cc0ea18193cf2f33
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Thu Jan 7 09:38:52 2021 -0500
util/set: add the found param to search_or_add
this brings parity with the internal api
Reviewed-by: Eric Anholt <eric at anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8450>
---
src/compiler/nir/nir_instr_set.c | 2 +-
src/util/set.c | 6 +++---
src/util/set.h | 4 ++--
src/util/tests/set/set_test.cpp | 8 ++++++--
4 files changed, 12 insertions(+), 8 deletions(-)
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);
More information about the mesa-commit
mailing list