commit 0783fbf889025baa4c38a739cf889ec78fa49fbd
parent 056ff846e2933ffea4378fad0e81796008af37ba
Author: MikoĊaj Lenczewski <mblenczewski@gmail.com>
Date: Sun, 5 Oct 2025 15:46:13 +0100
Fixup list iterators
Diffstat:
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 */