Mesa (master): exec_node: Add insert_before that inserts an entire list
Ian Romanick
idr at kemper.freedesktop.org
Fri Sep 3 19:01:04 UTC 2010
Module: Mesa
Branch: master
Commit: 79082b8aca130ecdcaa1167a9961c16fc620f423
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=79082b8aca130ecdcaa1167a9961c16fc620f423
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Aug 27 13:53:56 2010 -0700
exec_node: Add insert_before that inserts an entire list
---
src/glsl/list.h | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/src/glsl/list.h b/src/glsl/list.h
index 7647774..69cf993 100644
--- a/src/glsl/list.h
+++ b/src/glsl/list.h
@@ -165,6 +165,12 @@ struct exec_node {
this->prev->next = before;
this->prev = before;
}
+
+ /**
+ * Insert another list in the list before the current node
+ */
+ void insert_before(class exec_list *before);
+
/**
* Replace the current node with the given node.
*/
@@ -449,6 +455,23 @@ struct exec_list {
#endif
};
+
+#ifdef __cplusplus
+inline void exec_node::insert_before(exec_list *before)
+{
+ if (before->is_empty())
+ return;
+
+ before->tail_pred->next = this;
+ before->head->prev = this->prev;
+
+ this->prev->next = before->head;
+ this->prev = before->tail_pred;
+
+ before->make_empty();
+}
+#endif
+
/**
* This version is safe even if the current node is removed.
*/
More information about the mesa-commit
mailing list