From b506318d720d883d07b9ea697a4f770f47c852b4 Mon Sep 17 00:00:00 2001 From: Georg Hopp Date: Sun, 8 Sep 2013 10:42:03 +0100 Subject: [PATCH] fix the fix... --- src/tree/delete.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tree/delete.c b/src/tree/delete.c index 802c765..82bc7e2 100644 --- a/src/tree/delete.c +++ b/src/tree/delete.c @@ -31,6 +31,7 @@ void * treeDelete(Tree * this, const void * search, TreeComp comp) { Tree node = *this; + Tree del_node; void * data; @@ -102,8 +103,8 @@ treeDelete(Tree * this, const void * search, TreeComp comp) delete(node); return data; } else { + del_node = node; if (NULL != child) { - delete(node); node = child; } else { node->color = rbBlack; @@ -171,13 +172,11 @@ treeDelete(Tree * this, const void * search, TreeComp comp) if (rbBlack == TREE_PARENT(node)->color) { // case 3 Tree parent = node->parent; - delete(node); node = parent; continue; } else { // case 4 TREE_PARENT(node)->color = rbBlack; - delete(node); break; } } @@ -240,6 +239,7 @@ treeDelete(Tree * this, const void * search, TreeComp comp) break; } + delete(del_node); /* * not sure if deleting here is correct. */