From 5aac681ee637d268960316d121129f95591339da Mon Sep 17 00:00:00 2001 From: Minep Date: Sat, 20 Apr 2024 11:19:15 +0100 Subject: [PATCH 1/1] properly update the pprev of next node when deleting hlist_node (close #30) --- lunaix-os/includes/lunaix/ds/llist.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lunaix-os/includes/lunaix/ds/llist.h b/lunaix-os/includes/lunaix/ds/llist.h index 1eec54b..88e2523 100644 --- a/lunaix-os/includes/lunaix/ds/llist.h +++ b/lunaix-os/includes/lunaix/ds/llist.h @@ -125,7 +125,13 @@ hlist_delete(struct hlist_node* node) { if (!node->pprev) return; + + if (node->next) { + node->next->pprev = node->pprev; + } + *node->pprev = node->next; + node->next = 0; node->pprev = 0; } -- 2.27.0