[Mesa-dev] [PATCH 1/3] exec_list: add a prepend function

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


Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

On 07/08/2014 12:20 PM, Connor Abbott wrote:
> This complements the existing append function. It's implemented in a
> rather simple way right now; it could be changed if performance is a
> concern.
> 
> Signed-off-by: Connor Abbott <connor.abbott at intel.com>
> ---
>  src/glsl/list.h | 20 +++++++++++++++++++-
>  1 file changed, 19 insertions(+), 1 deletion(-)
> 
> diff --git a/src/glsl/list.h b/src/glsl/list.h
> index 922bd68..ca6ee9d 100644
> --- a/src/glsl/list.h
> +++ b/src/glsl/list.h
> @@ -345,9 +345,15 @@ struct exec_list {
>     void move_nodes_to(exec_list *target);
>  
>     /**
> -    * Append all nodes from the source list to the target list
> +    * Append all nodes from the source list to the end of the target list
>      */
>     void append_list(exec_list *source);
> +   
> +   /**
> +    * Prepend all nodes from the source list to the beginning of the target
> +    * list
> +    */
> +   void prepend_list(exec_list *source);
>  #endif
>  };
>  
> @@ -479,6 +485,13 @@ exec_list_append(struct exec_list *list, struct exec_list *source)
>  }
>  
>  static inline void
> +exec_list_prepend(struct exec_list *list, struct exec_list *source)
> +{
> +   exec_list_append(source, list);
> +   exec_list_move_nodes_to(source, list);
> +}
> +
> +static inline void
>  exec_node_insert_list_before(struct exec_node *n, struct exec_list *before)
>  {
>     if (exec_list_is_empty(before))
> @@ -554,6 +567,11 @@ inline void exec_list::append_list(exec_list *source)
>     exec_list_append(this, source);
>  }
>  
> +inline void exec_list::prepend_list(exec_list *source)
> +{
> +   exec_list_prepend(this, source);
> +}
> +
>  inline void exec_node::insert_before(exec_list *before)
>  {
>     exec_node_insert_list_before(this, before);
> 



More information about the mesa-dev mailing list