Commit b506318d720d883d07b9ea697a4f770f47c852b4

Authored by Georg Hopp
1 parent a723c92c

fix the fix...

Showing 1 changed file with 3 additions and 3 deletions
@@ -31,6 +31,7 @@ void * @@ -31,6 +31,7 @@ void *
31 treeDelete(Tree * this, const void * search, TreeComp comp) 31 treeDelete(Tree * this, const void * search, TreeComp comp)
32 { 32 {
33 Tree node = *this; 33 Tree node = *this;
  34 + Tree del_node;
34 35
35 void * data; 36 void * data;
36 37
@@ -102,8 +103,8 @@ treeDelete(Tree * this, const void * search, TreeComp comp) @@ -102,8 +103,8 @@ treeDelete(Tree * this, const void * search, TreeComp comp)
102 delete(node); 103 delete(node);
103 return data; 104 return data;
104 } else { 105 } else {
  106 + del_node = node;
105 if (NULL != child) { 107 if (NULL != child) {
106 - delete(node);  
107 node = child; 108 node = child;
108 } else { 109 } else {
109 node->color = rbBlack; 110 node->color = rbBlack;
@@ -171,13 +172,11 @@ treeDelete(Tree * this, const void * search, TreeComp comp) @@ -171,13 +172,11 @@ treeDelete(Tree * this, const void * search, TreeComp comp)
171 if (rbBlack == TREE_PARENT(node)->color) { 172 if (rbBlack == TREE_PARENT(node)->color) {
172 // case 3 173 // case 3
173 Tree parent = node->parent; 174 Tree parent = node->parent;
174 - delete(node);  
175 node = parent; 175 node = parent;
176 continue; 176 continue;
177 } else { 177 } else {
178 // case 4 178 // case 4
179 TREE_PARENT(node)->color = rbBlack; 179 TREE_PARENT(node)->color = rbBlack;
180 - delete(node);  
181 break; 180 break;
182 } 181 }
183 } 182 }
@@ -240,6 +239,7 @@ treeDelete(Tree * this, const void * search, TreeComp comp) @@ -240,6 +239,7 @@ treeDelete(Tree * this, const void * search, TreeComp comp)
240 break; 239 break;
241 } 240 }
242 241
  242 + delete(del_node);
243 /* 243 /*
244 * not sure if deleting here is correct. 244 * not sure if deleting here is correct.
245 */ 245 */
Please register or login to post a comment