diff lib/llist.c @ 1295:114ec0ab161c draft

Add free functions for predefined llist types.
author Rob Landley <rob@landley.net>
date Wed, 21 May 2014 06:57:43 -0500
parents c2663b7eca78
children 4d898affda0c
line wrap: on
line diff
--- a/lib/llist.c	Wed May 21 05:12:38 2014 -0500
+++ b/lib/llist.c	Wed May 21 06:57:43 2014 -0500
@@ -5,8 +5,26 @@
 
 #include "toys.h"
 
+// Callback function to free data pointer of double_list or arg_list
+
+void llist_free_arg(void *node)
+{
+  struct arg_list *d = node;
+
+  free(d->arg);
+  free(d);
+}
+
+void llist_free_double(void *node)
+{
+  struct double_list *d = node;
+
+  free(d->data);
+  free(d);
+}
+
 // Call a function (such as free()) on each element of a linked list.
-void llist_traverse(void *list, void (*using)(void *data))
+void llist_traverse(void *list, void (*using)(void *node))
 {
   void *old = list;