X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/6465356a983ac139f81d3b7913cdb548477c346c..28300737d9bfa684aac372729e0148b22c4ded2b:/include/sys/rbtree.h diff --git a/include/sys/rbtree.h b/include/sys/rbtree.h index e74b017..87988f2 100644 --- a/include/sys/rbtree.h +++ b/include/sys/rbtree.h @@ -52,9 +52,16 @@ __BEGIN_DECLS #define RB_TREE_FOREACH(N, T) \ for ((N) = RB_TREE_MIN(T); (N); \ (N) = rb_tree_iterate((T), (N), RB_DIR_RIGHT)) +#define RB_TREE_FOREACH_SAFE(N, T, TVAR) \ + for ((N) = RB_TREE_MIN(T); (N) && ((TVAR) = rb_tree_iterate((T), (N), RB_DIR_RIGHT), 1); \ + (N) = (TVAR)) #define RB_TREE_FOREACH_REVERSE(N, T) \ for ((N) = RB_TREE_MAX(T); (N); \ (N) = rb_tree_iterate((T), (N), RB_DIR_LEFT)) +#define RB_TREE_FOREACH_REVERSE_SAFE(N, T, TVAR) \ + for ((N) = RB_TREE_MAX(T); (N) && ((TVAR) = rb_tree_iterate((T), (N), RB_DIR_LEFT), 1); \ + (N) = (TVAR)) + /* * rbto_compare_nodes_fn: