From 930cac261bac86957e67e260a5417a5fbc218a2f Mon Sep 17 00:00:00 2001 From: lifegpc Date: Tue, 19 Apr 2022 09:18:03 +0800 Subject: [PATCH] Fix bug in linked_list_remove_before --- linked_list.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/linked_list.h b/linked_list.h index e23d16e..27489bd 100644 --- a/linked_list.h +++ b/linked_list.h @@ -338,13 +338,15 @@ void linked_list_remove(struct LinkedList*& node, void(*free_func)(T) = nullp } if (free_func) free_func(node->d); free(node); + node = nullptr; } template void linked_list_remove_before(struct LinkedList* node, void(*free_func)(T) = nullptr) { if (!node) return; while (node->prev) { - linked_list_remove(node->prev, free_func); + struct LinkedList* cur = node->prev; + linked_list_remove(cur, free_func); } }