From 23e9903f0737ffd61f54669ce66af2d60ce4a31b Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Sat, 5 May 2012 17:14:28 +0200 Subject: [PATCH] misc: add safe list iterator New for-each implementation that keeps a safe pointer to the next element so you can remove the current element from the list. Signed-off-by: David Herrmann --- src/misc.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/misc.h b/src/misc.h index f1383d2..04fee4d 100644 --- a/src/misc.h +++ b/src/misc.h @@ -154,4 +154,8 @@ static inline bool kmscon_dlist_empty(struct kmscon_dlist *head) #define kmscon_dlist_for_each(iter, head) \ for (iter = (head)->next; iter != (head); iter = iter->next) +#define kmscon_dlist_for_each_safe(iter, tmp, head) \ + for (iter = (head)->next, tmp = iter->next; iter != (head); \ + iter = tmp, tmp = iter->next) + #endif /* KMSCON_MISC_H */