diff options
-rw-r--r-- | src/glsl/list.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/glsl/list.h b/src/glsl/list.h index a70b79d571f..76477743106 100644 --- a/src/glsl/list.h +++ b/src/glsl/list.h @@ -378,6 +378,23 @@ struct exec_list { } /** + * Remove the first node from a list and return it + * + * \return + * The first node in the list or \c NULL if the list is empty. + * + * \sa exec_list::get_head + */ + exec_node *pop_head() + { + exec_node *const n = this->get_head(); + if (n != NULL) + n->remove(); + + return n; + } + + /** * Move all of the nodes from this list to the target list */ void move_nodes_to(exec_list *target) |