[Mesa-dev] [PATCH 2/9] util/set: add a set_clear function
Kenneth Graunke
kenneth at whitecape.org
Wed May 2 17:01:33 UTC 2018
On Wednesday, May 2, 2018 9:01:02 AM PDT Scott D Phillips wrote:
> Clear a set back to the state of having zero entries.
> ---
> src/util/set.c | 23 +++++++++++++++++++++++
> src/util/set.h | 3 +++
> 2 files changed, 26 insertions(+)
>
> diff --git a/src/util/set.c b/src/util/set.c
> index d71f771807f..2c9b09319ff 100644
> --- a/src/util/set.c
> +++ b/src/util/set.c
> @@ -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.
> *
> diff --git a/src/util/set.h b/src/util/set.h
> index 9acd2c28c9f..06e79e15867 100644
> --- a/src/util/set.h
> +++ b/src/util/set.h
> @@ -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);
>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Cc'ing Eric since I think this was imported from a separate project
of his, in case he wants to port this back to the original repo.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180502/5cd71288/attachment-0001.sig>
More information about the mesa-dev
mailing list