aboutsummaryrefslogtreecommitdiff
path: root/lib/llist.c
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2014-05-21 06:57:43 -0500
committerRob Landley <rob@landley.net>2014-05-21 06:57:43 -0500
commite604d5344466df8584c48c8492397fcffa63a671 (patch)
tree1b351501cdee96cb897d884d5d2dff5a308ee225 /lib/llist.c
parent95d2ce84789011970e2f814b2fb6c819084bde8c (diff)
downloadtoybox-e604d5344466df8584c48c8492397fcffa63a671.tar.gz
Add free functions for predefined llist types.
Diffstat (limited to 'lib/llist.c')
-rw-r--r--lib/llist.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/llist.c b/lib/llist.c
index 71a187db..2d5bc97a 100644
--- a/lib/llist.c
+++ b/lib/llist.c
@@ -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;