From ae4ac9f69de3120004557824e0d766fe8140b27d Mon Sep 17 00:00:00 2001 From: Ben Fuhrmannek Date: Mon, 2 Aug 2021 19:19:23 +0200 Subject: properly free memory on shutdown --- src/sp_list.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/sp_list.c') diff --git a/src/sp_list.c b/src/sp_list.c index 0f00371..92e628d 100644 --- a/src/sp_list.c +++ b/src/sp_list.c @@ -1,8 +1,22 @@ #include "php_snuffleupagus.h" -void sp_list_free(sp_list_node *node) { +void sp_list_free(sp_list_node *node, void (*free_data_func)(void *data)) { while (node) { sp_list_node *tmp = node->next; + if (free_data_func && node->data) { + free_data_func(node->data); + } + pefree(node, 1); + node = tmp; + } +} + +void sp_list_free2(sp_list_node *node) { + while (node) { + sp_list_node *tmp = node->next; + if (node->data) { + pefree(node->data, 1); + } pefree(node, 1); node = tmp; } -- cgit v1.3