diff options
Diffstat (limited to 'src/list.c')
-rw-r--r-- | src/list.c | 17 |
1 files changed, 7 insertions, 10 deletions
@@ -67,17 +67,14 @@ PMList* list_new() void list_free(PMList *list) { - if(list == NULL) { - return; - } - if(list->data != NULL) { - free(list->data); - list->data = NULL; - } - if(list->next != NULL) { - list_free(list->next); + PMList *ptr, *it = list; + + while(it) { + ptr = it->next; + free(it->data); + free(it); + it = ptr; } - free(list); return; } |