[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