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