[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