vlist: add more macros for loop iteration
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
This commit is contained in:
parent
eb30a03048
commit
301303911d
1 changed files with 15 additions and 0 deletions
15
vlist.h
15
vlist.h
|
@ -72,4 +72,19 @@ void vlist_flush_all(struct vlist_tree *tree);
|
||||||
#define vlist_for_each_element(tree, element, node_member) \
|
#define vlist_for_each_element(tree, element, node_member) \
|
||||||
avl_for_each_element(&(tree)->avl, element, node_member.avl)
|
avl_for_each_element(&(tree)->avl, element, node_member.avl)
|
||||||
|
|
||||||
|
#define vlist_for_each_element_reverse(tree, element, node_member) \
|
||||||
|
avl_for_each_element_reverse(&(tree)->avl, element, node_member.avl)
|
||||||
|
|
||||||
|
#define vlist_for_first_to_element(tree, last, element, node_member) \
|
||||||
|
avl_for_element_range(avl_first_element(&(tree)->avl, element, node_member.avl), last, element, node_member.avl)
|
||||||
|
|
||||||
|
#define vlist_for_first_to_element_reverse(tree, last, element, node_member) \
|
||||||
|
avl_for_element_range_reverse(avl_first_element(&(tree)->avl, element, node_member.avl), last, element, node_member.avl)
|
||||||
|
|
||||||
|
#define vlist_for_element_to_last(tree, first, element, node_member) \
|
||||||
|
avl_for_element_range(first, avl_last_element(&(tree)->avl, element, node_member.avl), element, node_member.avl)
|
||||||
|
|
||||||
|
#define vlist_for_element_to_last_reverse(tree, first, element, node_member) \
|
||||||
|
avl_for_element_range_reverse(first, avl_last_element(&(tree)->avl, element, node_member.avl), element, node_member.avl)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue