[Mesa-dev] [PATCH 065/133] glsl/list: Add a foreach_list_typed_safe_reverse macro

Jason Ekstrand jason at jlekstrand.net
Mon Dec 15 22:05:15 PST 2014


---
 src/glsl/list.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/glsl/list.h b/src/glsl/list.h
index 4774ccc..330c17e 100644
--- a/src/glsl/list.h
+++ b/src/glsl/list.h
@@ -678,4 +678,13 @@ inline void exec_node::insert_before(exec_list *before)
         __node = __next, __next =                                          \
            exec_node_data(__type, (__next)->__field.next, __field))
 
+#define foreach_list_typed_safe_reverse(__type, __node, __field, __list)   \
+   for (__type * __node =                                                  \
+           exec_node_data(__type, (__list)->tail_pred, __field),           \
+               * __prev =                                                  \
+           exec_node_data(__type, (__node)->__field.prev, __field);        \
+        __prev != NULL;                                                    \
+        __node = __prev, __prev =                                          \
+           exec_node_data(__type, (__prev)->__field.prev, __field))
+
 #endif /* LIST_CONTAINER_H */
-- 
2.2.0



More information about the mesa-dev mailing list