Creating a new node, make sure it points to the right parent, if the parent has to...
authorDana Jansens <danakj@orodu.net>
Fri, 30 Oct 2009 22:00:24 +0000 (18:00 -0400)
committerDana Jansens <danakj@orodu.net>
Thu, 12 Nov 2009 21:54:05 +0000 (16:54 -0500)
glib/gtree.c

index 072dab516ff5ecb23ecdad7561ce8658e9cd05d5..cd850b69333e69f1d4b5d5f280b1f539709054e1 100644 (file)
@@ -723,12 +723,13 @@ g_tree_insert_internal (GTree    *tree,
             {
               child = g_tree_node_new (tree, key, value);
 
+              node = g_tree_node_next_version (tree, node);
+
               /* child is created at the current version */
               child->v[0].left = node->left(NOW);
               child->v[0].right = node;
               child->v[0].parent = node;
 
-              node = g_tree_node_next_version (tree, node);
               node->v[0].left = child;
               node->v[0].left_child = TRUE;
 
@@ -745,12 +746,13 @@ g_tree_insert_internal (GTree    *tree,
             {
               child = g_tree_node_new (tree, key, value);
 
+              node = g_tree_node_next_version (tree, node);
+
               /* child is created at the current version */
               child->v[0].right = node->right(NOW);
               child->v[0].left = node;
               child->v[0].parent = node;
 
-              node = g_tree_node_next_version (tree, node);
               node->v[0].right = child;
               node->v[0].right_child = TRUE;