diff options
author | Kenneth Graunke <[email protected]> | 2014-07-05 22:04:45 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2014-07-08 12:31:01 -0700 |
commit | e13a6406c3d55162d6f4641f3ccca7635b9a5212 (patch) | |
tree | c6585bc51d7825ae152cbeef5b97eebad453d07a | |
parent | be536efe20d7d0969e6d5286fc488fcc1c403b63 (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.h | 6 |
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) /** |