From: Dana Jansens Date: Wed, 11 Nov 2009 20:19:35 +0000 (-0500) Subject: fix another memory leak X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=50d41f1ea135f0613d4db0e1ea4791840a9ddca9;p=dana%2Fcg-glib.git fix another memory leak --- diff --git a/glib/gtree.c b/glib/gtree.c index f4e3bb6b..511748bc 100644 --- a/glib/gtree.c +++ b/glib/gtree.c @@ -1296,11 +1296,21 @@ g_tree_remove_internal (GTree *tree, } 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--;