From 50d41f1ea135f0613d4db0e1ea4791840a9ddca9 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Wed, 11 Nov 2009 15:19:35 -0500 Subject: [PATCH] fix another memory leak --- glib/gtree.c | 10 ++++++++++ 1 file changed, 10 insertions(+) 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--; -- 2.34.1