summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2014-07-05 22:04:45 -0700
committerKenneth Graunke <[email protected]>2014-07-08 12:31:01 -0700
commite13a6406c3d55162d6f4641f3ccca7635b9a5212 (patch)
treec6585bc51d7825ae152cbeef5b97eebad453d07a
parentbe536efe20d7d0969e6d5286fc488fcc1c403b63 (diff)
glsl: Fix the foreach_in_list_reverse macro.
We clearly don't want to start at the head and walk backwards; we want to start at the last real element before the tail sentinel. If the list is empty, tail_pred will be the head sentinel, and we'll stop. Nothing uses this function, so I guess nobody noticed it was broken. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Matt Turner <[email protected]>
-rw-r--r--src/glsl/list.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/glsl/list.h b/src/glsl/list.h
index 922bd68ab5e..a4444bda9e6 100644
--- a/src/glsl/list.h
+++ b/src/glsl/list.h
@@ -565,9 +565,9 @@ inline void exec_node::insert_before(exec_list *before)
!(__inst)->is_tail_sentinel(); \
(__inst) = (__type *)(__inst)->next)
-#define foreach_in_list_reverse(__type, __inst, __list) \
- for (__type *(__inst) = (__type *)(__list)->head; \
- !(__inst)->is_head_sentinel(); \
+#define foreach_in_list_reverse(__type, __inst, __list) \
+ for (__type *(__inst) = (__type *)(__list)->tail_pred; \
+ !(__inst)->is_head_sentinel(); \
(__inst) = (__type *)(__inst)->prev)
/**