]> Pileus Git - ~andy/gtk/commitdiff
rbtree: Use gtk_rbnode_adjust() more
authorBenjamin Otte <otte@redhat.com>
Sat, 19 Nov 2011 12:08:10 +0000 (13:08 +0100)
committerBenjamin Otte <otte@redhat.com>
Mon, 21 Nov 2011 21:33:45 +0000 (22:33 +0100)
Make _gtk_rbtree_insert_before() use it.

gtk/gtkrbtree.c

index ce4c3854336217239f4eeea1453e74230c9e9730..9f281be200fbda6272a0f235afc36f3df7354862 100644 (file)
@@ -515,8 +515,6 @@ _gtk_rbtree_insert_before (GtkRBTree *tree,
 {
   GtkRBNode *node;
   gboolean left = TRUE;
-  GtkRBNode *tmp_node;
-  GtkRBTree *tmp_tree;
 
 #ifdef G_ENABLE_DEBUG  
   if (gtk_get_debug_flags () & GTK_DEBUG_TREE)
@@ -546,32 +544,15 @@ _gtk_rbtree_insert_before (GtkRBTree *tree,
        current->left = node;
       else
        current->right = node;
-      tmp_node = node->parent;
-      tmp_tree = tree;
+      gtk_rbnode_adjust (tree, node->parent,
+                         1, 1, height);
     }
   else
     {
       g_assert (tree->root == tree->nil);
       tree->root = node;
-      tmp_node = tree->parent_node;
-      tmp_tree = tree->parent_tree;
-    }
-
-  while (tmp_tree && tmp_node && tmp_node != tmp_tree->nil)
-    {
-      /* We only want to propagate the count if we are in the tree we
-       * started in. */
-      if (tmp_tree == tree)
-       tmp_node->count++;
-
-      tmp_node->total_count += 1;
-      tmp_node->offset += height;
-      tmp_node = tmp_node->parent;
-      if (tmp_node == tmp_tree->nil)
-       {
-         tmp_node = tmp_tree->parent_node;
-         tmp_tree = tmp_tree->parent_tree;
-       }
+      gtk_rbnode_adjust (tree->parent_tree, tree->parent_node,
+                         0, 1, height);
     }
 
   if (valid)