@@ -163,15 +163,13 @@ static inline void ptr_cur_init(struct ptr_cur *cur, struct ptr_list *head)
#define DO_FOR_EACH(head, ptr, __cur, CUR_ENTRY) do { \
struct ptr_cur __cur; \
CHECK_TYPE(head,ptr); \
- DO_INIT(__cur, head); \
- if (!__cur.h) break; \
- do { \
- for (__cur.n = 0; __cur.n < __cur.l->nr; __cur.n++) { \
- ptr = CUR_ENTRY(&__cur); \
+ if (!head) break; \
+ ptr_cur_beg(&__cur, (struct ptr_list *)head); \
+ while (ptr_cur_next(&__cur)) { \
+ ptr = CUR_ENTRY(&__cur);
#define DO_END_FOR_EACH(ptr, __cur) \
- } \
- } while ((__cur.l = __cur.l->next) != __cur.h); \
+ } \
} while (0)
#define DO_FOR_EACH_REVERSE(head, ptr, __cur, CUR_ENTRY) do { \