summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2021-11-12 20:04:29 +0000
committerDaniel Golle <daniel@makrotopia.org>2021-11-20 17:44:11 +0000
commitcce5e351278b307af7f69931971e3d4e060117d7 (patch)
treef79f5d0a076433676c7ce90d9b6bcf4c9a87976f
parentc86a894ec63d83ecf2c373bbf9dc8fba9713d942 (diff)
downloadlibubox-cce5e351278b307af7f69931971e3d4e060117d7.tar.gz
vlist: define vlist_for_each_element_safe
Yet another macro wrapper around the corresponding avl_* macro. This new macro makes it possible to iterate over vlists in ways which may have destructive consequences without being punished by segfault. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
-rw-r--r--vlist.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/vlist.h b/vlist.h
index ff6b138..381fd97 100644
--- a/vlist.h
+++ b/vlist.h
@@ -72,6 +72,9 @@ void vlist_flush_all(struct vlist_tree *tree);
#define vlist_for_each_element(tree, element, node_member) \
avl_for_each_element(&(tree)->avl, element, node_member.avl)
+#define vlist_for_each_element_safe(tree, element, node_member, ptr) \
+ avl_for_each_element_safe(&(tree)->avl, element, node_member.avl, ptr)
+
#define vlist_for_each_element_reverse(tree, element, node_member) \
avl_for_each_element_reverse(&(tree)->avl, element, node_member.avl)