<div dir="ltr">Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 2, 2018 at 9:01 AM, Scott D Phillips <span dir="ltr"><<a href="mailto:scott.d.phillips@intel.com" target="_blank">scott.d.phillips@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Clear a set back to the state of having zero entries.<br>
---<br>
src/util/set.c | 23 +++++++++++++++++++++++<br>
src/util/set.h | 3 +++<br>
2 files changed, 26 insertions(+)<br>
<br>
diff --git a/src/util/set.c b/src/util/set.c<br>
index d71f771807f..2c9b09319ff 100644<br>
--- a/src/util/set.c<br>
+++ b/src/util/set.c<br>
@@ -155,6 +155,29 @@ _mesa_set_destroy(struct set *ht, void (*delete_function)(struct set_entry *entr<br>
ralloc_free(ht);<br>
}<br>
<br>
+/**<br>
+ * Clears all values from the given set.<br>
+ *<br>
+ * If delete_function is passed, it gets called on each entry present before<br>
+ * the set is cleared.<br>
+ */<br>
+void<br>
+_mesa_set_clear(struct set *set, void (*delete_function)(struct set_entry *entry))<br>
+{<br>
+ struct set_entry *entry;<br>
+<br>
+ if (!set)<br>
+ return;<br>
+<br>
+ set_foreach (set, entry) {<br>
+ if (delete_function)<br>
+ delete_function(entry);<br>
+ entry->key = deleted_key;<br>
+ }<br>
+<br>
+ set->entries = set->deleted_entries = 0;<br>
+}<br>
+<br>
/**<br>
* Finds a set entry with the given key and hash of that key.<br>
*<br>
diff --git a/src/util/set.h b/src/util/set.h<br>
index 9acd2c28c9f..06e79e15867 100644<br>
--- a/src/util/set.h<br>
+++ b/src/util/set.h<br>
@@ -61,6 +61,9 @@ _mesa_set_create(void *mem_ctx,<br>
void<br>
_mesa_set_destroy(struct set *set,<br>
void (*delete_function)(struct set_entry *entry));<br>
+void<br>
+_mesa_set_clear(struct set *set,<br>
+ void (*delete_function)(struct set_entry *entry));<br>
<br>
struct set_entry *<br>
_mesa_set_add(struct set *set, const void *key);<br>
<span class="HOEnZb"><font color="#888888">-- <br>
2.14.3<br>
<br>
</font></span></blockquote></div><br></div>