diff options
author | Andrew Boie <andrew.p.boie@intel.com> | 2013-09-12 15:30:40 -0700 |
---|---|---|
committer | Andrew Boie <andrew.p.boie@intel.com> | 2013-09-12 15:30:40 -0700 |
commit | 30fb83b6e520e0167934b6defe105f2bdd408fd5 (patch) | |
tree | 84ad3e23bc507b6da2740bb9987c3d45db1d40fc /include/cutils | |
parent | 596e9c6314e4f2869499bcdbb816680ddb10c88f (diff) | |
download | system_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.h | 5 |
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); |