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