}
else
{
+ /* make a new version of the parent to cut the child off.
+ making a new version of the parent may make a new version of
+ the node being deleted, which is the one we'd want to free then
+ instead, so update the node pointer */
parent = g_tree_node_next_version (tree, parent);
if (is_leftchild)
+ {
+ node = parent->v[0].left;
parent->v[0].left = NULL;
+ }
else
+ {
+ node = parent->v[0].right;
parent->v[0].right = NULL;
+ }
}
tree->nnodes--;