[Mesa-dev] [PATCH 2/3] exec_list: add a function to count the size of a list

Ian Romanick idr at freedesktop.org
Wed Jul 9 15:56:41 PDT 2014


On 07/08/2014 12:20 PM, Connor Abbott wrote:
> Signed-off-by: Connor Abbott <connor.abbott at intel.com>
> ---
>  src/glsl/list.h | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/src/glsl/list.h b/src/glsl/list.h
> index ca6ee9d..68ab3fd 100644
> --- a/src/glsl/list.h
> +++ b/src/glsl/list.h
> @@ -324,6 +324,8 @@ struct exec_list {
>  
>     const exec_node *get_tail() const;
>     exec_node *get_tail();
> +   
> +   unsigned get_size();
>  
>     void push_head(exec_node *n);
>     void push_tail(exec_node *n);
> @@ -405,6 +407,19 @@ exec_list_get_tail(struct exec_list *list)
>     return !exec_list_is_empty(list) ? list->tail_pred : NULL;
>  }
>  
> +static inline unsigned
> +exec_list_get_size(struct exec_list *list)
> +{
> +   unsigned size = 0;
> +   
> +   for (struct exec_node *node = list->head; node->next != NULL;
> +	node = node->next) {

Maybe use foreach_in_list?  Since Matt was so nice to create it... :)

> +      size++;
> +   }
> +   
> +   return size;
> +}
> +
>  static inline void
>  exec_list_push_head(struct exec_list *list, struct exec_node *n)
>  {
> @@ -537,6 +552,11 @@ inline exec_node *exec_list::get_tail()
>     return exec_list_get_tail(this);
>  }
>  
> +inline unsigned exec_list::get_size()
> +{
> +   return exec_list_get_size(this);
> +}
> +
>  inline void exec_list::push_head(exec_node *n)
>  {
>     exec_list_push_head(this, n);
> 



More information about the mesa-dev mailing list