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

gtk/gtkrbtree.c

index 99261ad881ed137a95bcb0efd4905c1a36df0c41..ce4c3854336217239f4eeea1453e74230c9e9730 100644 (file)
@@ -448,8 +448,6 @@ _gtk_rbtree_insert_after (GtkRBTree *tree,
 {
   GtkRBNode *node;
   gboolean right = TRUE;
-  GtkRBNode *tmp_node;
-  GtkRBTree *tmp_tree;  
 
 #ifdef G_ENABLE_DEBUG  
   if (gtk_get_debug_flags () & GTK_DEBUG_TREE)
@@ -478,32 +476,15 @@ _gtk_rbtree_insert_after (GtkRBTree *tree,
        current->right = node;
       else
        current->left = 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)