X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/2650fa9ee9806a25904566dea091b1225d74f063..b061a43bf32824cb214e9e3a29a974341de443d4:/include/sys/rbtree.h diff --git a/include/sys/rbtree.h b/include/sys/rbtree.h index e74b017..b57f32e 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)); \ + (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)); \ + (N) = (TVAR)) + /* * rbto_compare_nodes_fn: