Mercurial > hg > toybox
diff lib/llist.c @ 624:1e8b9acdafeb
Genericize llist code a bit: rename llist_free() to llist_traverse(), and no longer accept NULL as a synonym for free.
author | Rob Landley <rob@landley.net> |
---|---|
date | Sun, 15 Jul 2012 17:22:04 -0500 |
parents | c2f39708a4c4 |
children | 786841fdb1e0 |
line wrap: on
line diff
--- a/lib/llist.c Sun Jul 15 16:56:20 2012 -0500 +++ b/lib/llist.c Sun Jul 15 17:22:04 2012 -0500 @@ -6,15 +6,12 @@ #include "toys.h" -// Free all the elements of a linked list -// if freeit!=NULL call freeit() on each element before freeing it. - -void llist_free(void *list, void (*freeit)(void *data)) +// Call a function (such as free()) on each element of a linked list. +void llist_traverse(void *list, void (*using)(void *data)) { while (list) { void *pop = llist_pop(&list); - if (freeit) freeit(pop); - else free(pop); + using(pop); // End doubly linked list too. if (list==pop) break;