summaryrefslogtreecommitdiffstats
path: root/include/cutils
diff options
context:
space:
mode:
authorAndrew Boie <andrew.p.boie@intel.com>2013-09-12 15:30:40 -0700
committerAndrew Boie <andrew.p.boie@intel.com>2013-09-12 15:30:40 -0700
commit30fb83b6e520e0167934b6defe105f2bdd408fd5 (patch)
tree84ad3e23bc507b6da2740bb9987c3d45db1d40fc /include/cutils
parent596e9c6314e4f2869499bcdbb816680ddb10c88f (diff)
downloadsystem_core-30fb83b6e520e0167934b6defe105f2bdd408fd5.zip
system_core-30fb83b6e520e0167934b6defe105f2bdd408fd5.tar.gz
system_core-30fb83b6e520e0167934b6defe105f2bdd408fd5.tar.bz2
cutils: list: add list_for_each_safe
For when you want to modify the list whilst iterating over it. Change-Id: I84432892890987c218e56883c35e52c9ff0240a3 Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Diffstat (limited to 'include/cutils')
-rw-r--r--include/cutils/list.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/cutils/list.h b/include/cutils/list.h
index 3881fc9..72395f4 100644
--- a/include/cutils/list.h
+++ b/include/cutils/list.h
@@ -44,6 +44,11 @@ struct listnode
#define list_for_each_reverse(node, list) \
for (node = (list)->prev; node != (list); node = node->prev)
+#define list_for_each_safe(node, next, list) \
+ for (node = (list)->next, next = node->next; \
+ node != (list); \
+ node = next, next = node->next)
+
void list_init(struct listnode *list);
void list_add_tail(struct listnode *list, struct listnode *item);
void list_remove(struct listnode *item);