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;