[Mesa-dev] [PATCH 2/9] util/set: add a set_clear function
Jason Ekstrand
jason at jlekstrand.net
Thu May 3 21:00:10 UTC 2018
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
On Wed, May 2, 2018 at 9:01 AM, Scott D Phillips <scott.d.phillips at intel.com
> 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);
> --
> 2.14.3
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180503/8c0f8e12/attachment-0001.html>
More information about the mesa-dev
mailing list