toys

toys.git
git clone git://git.lenczewski.org/toys.git
Log | Files | Refs | README | LICENSE

commit 0783fbf889025baa4c38a739cf889ec78fa49fbd
parent 056ff846e2933ffea4378fad0e81796008af37ba
Author: MikoĊ‚aj Lenczewski <mblenczewski@gmail.com>
Date:   Sun,  5 Oct 2025 15:46:13 +0100

Fixup list iterators

Diffstat:
Mlist.h | 10+++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/list.h b/list.h @@ -88,17 +88,17 @@ list_pop_tail(struct list_node *list) #define LIST_RITER(list, it) \ for ((it) = LIST_TAIL(list); (it) != (list); (it) = (it)->prev) -#define LIST_NODE_ENTRY(ptr, T, member) TO_PARENT(ptr, T, member) +#define LIST_NODE_ENTRY(ptr, it, member) TO_PARENT(ptr, __typeof__ (*(it)), member) #define LIST_ENTRY_ITER(list, it, member) \ - for ((it) = LIST_NODE_ENTRY(LIST_HEAD(list), __typeof__ (*(it)), member); \ + for ((it) = LIST_NODE_ENTRY(LIST_HEAD(list), (it), member); \ &(it)->member != (list); \ - (it) = LIST_NODE_ENTRY((it)->member.next, __typeof__ (*(it)), member)) + (it) = LIST_NODE_ENTRY(LIST_HEAD(&(it)->member), (it), member)) #define LIST_ENTRY_RITER(list, it, member) \ - for ((it) = LIST_NODE_ENTRY(LIST_TAIL(list), __typeof__ (*(it)), member); \ + for ((it) = LIST_NODE_ENTRY(LIST_TAIL(list), (it), member); \ &(it)->member != (list); \ - (it) = LIST_NODE_ENTRY((it)->member.prev, __typeof__ (*(it)), member)) + (it) = LIST_NODE_ENTRY(LIST_TAIL(&(it)->member), (it), member)) #endif /* LIST_H */