From 02eef483430e48efdd30db06ea6b68fe64d62bfd Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Fri, 7 Nov 2014 18:27:36 -0800 Subject: [PATCH] nir/nir: Use safe iterators when iterating over the CFG Reviewed-by: Connor Abbott --- src/glsl/nir/nir.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/glsl/nir/nir.c b/src/glsl/nir/nir.c index d0e09eb..e5346ff 100644 --- a/src/glsl/nir/nir.c +++ b/src/glsl/nir/nir.c @@ -1738,22 +1738,24 @@ static inline bool foreach_if(nir_if *if_stmt, nir_foreach_block_cb cb, bool reverse, void *state) { if (reverse) { - foreach_list_typed_reverse(nir_cf_node, node, node, &if_stmt->else_list) { + foreach_list_typed_safe_reverse(nir_cf_node, node, node, + &if_stmt->else_list) { if (!foreach_cf_node(node, cb, reverse, state)) return false; } - foreach_list_typed_reverse(nir_cf_node, node, node, &if_stmt->then_list) { + foreach_list_typed_safe_reverse(nir_cf_node, node, node, + &if_stmt->then_list) { if (!foreach_cf_node(node, cb, reverse, state)) return false; } } else { - foreach_list_typed(nir_cf_node, node, node, &if_stmt->then_list) { + foreach_list_typed_safe(nir_cf_node, node, node, &if_stmt->then_list) { if (!foreach_cf_node(node, cb, reverse, state)) return false; } - foreach_list_typed(nir_cf_node, node, node, &if_stmt->else_list) { + foreach_list_typed_safe(nir_cf_node, node, node, &if_stmt->else_list) { if (!foreach_cf_node(node, cb, reverse, state)) return false; } @@ -1766,12 +1768,12 @@ static inline bool foreach_loop(nir_loop *loop, nir_foreach_block_cb cb, bool reverse, void *state) { if (reverse) { - foreach_list_typed_reverse(nir_cf_node, node, node, &loop->body) { + foreach_list_typed_safe_reverse(nir_cf_node, node, node, &loop->body) { if (!foreach_cf_node(node, cb, reverse, state)) return false; } } else { - foreach_list_typed(nir_cf_node, node, node, &loop->body) { + foreach_list_typed_safe(nir_cf_node, node, node, &loop->body) { if (!foreach_cf_node(node, cb, reverse, state)) return false; } @@ -1804,7 +1806,7 @@ foreach_cf_node(nir_cf_node *node, nir_foreach_block_cb cb, bool nir_foreach_block(nir_function_impl *impl, nir_foreach_block_cb cb, void *state) { - foreach_list_typed(nir_cf_node, node, node, &impl->body) { + foreach_list_typed_safe(nir_cf_node, node, node, &impl->body) { if (!foreach_cf_node(node, cb, false, state)) return false; } @@ -1819,7 +1821,7 @@ nir_foreach_block_reverse(nir_function_impl *impl, nir_foreach_block_cb cb, if (!cb(impl->end_block, state)) return false; - foreach_list_typed_reverse(nir_cf_node, node, node, &impl->body) { + foreach_list_typed_safe_reverse(nir_cf_node, node, node, &impl->body) { if (!foreach_cf_node(node, cb, true, state)) return false; } -- 2.7.4