mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 13:30:12 +01:00
util/set: add a set_clear function
Clear a set back to the state of having zero entries. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
affe63b1da
commit
5c075b0855
2 changed files with 26 additions and 0 deletions
|
|
@ -155,6 +155,29 @@ _mesa_set_destroy(struct set *ht, void (*delete_function)(struct set_entry *entr
|
|||
ralloc_free(ht);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears all values from the given set.
|
||||
*
|
||||
* If delete_function is passed, it gets called on each entry present before
|
||||
* the set is cleared.
|
||||
*/
|
||||
void
|
||||
_mesa_set_clear(struct set *set, void (*delete_function)(struct set_entry *entry))
|
||||
{
|
||||
struct set_entry *entry;
|
||||
|
||||
if (!set)
|
||||
return;
|
||||
|
||||
set_foreach (set, entry) {
|
||||
if (delete_function)
|
||||
delete_function(entry);
|
||||
entry->key = deleted_key;
|
||||
}
|
||||
|
||||
set->entries = set->deleted_entries = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds a set entry with the given key and hash of that key.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -61,6 +61,9 @@ _mesa_set_create(void *mem_ctx,
|
|||
void
|
||||
_mesa_set_destroy(struct set *set,
|
||||
void (*delete_function)(struct set_entry *entry));
|
||||
void
|
||||
_mesa_set_clear(struct set *set,
|
||||
void (*delete_function)(struct set_entry *entry));
|
||||
|
||||
struct set_entry *
|
||||
_mesa_set_add(struct set *set, const void *key);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue