]> Pileus Git - ~andy/gtk/commitdiff
rbtree: Remove the nil member
authorBenjamin Otte <otte@redhat.com>
Tue, 22 Nov 2011 02:18:31 +0000 (03:18 +0100)
committerBenjamin Otte <otte@redhat.com>
Tue, 22 Nov 2011 02:32:56 +0000 (03:32 +0100)
gtk/gtkrbtree.c
gtk/gtkrbtree.h
gtk/tests/rbtree.c

index 6304ee875cfc8b0a74636112fab886c312e6fcfa..a1f93f62b3188cc1b4f48cfdc2e69a995382c9d6 100644 (file)
@@ -61,9 +61,9 @@ _gtk_rbnode_new (GtkRBTree *tree,
 {
   GtkRBNode *node = g_slice_new (GtkRBNode);
 
-  node->left = tree->nil;
-  node->right = tree->nil;
-  node->parent = tree->nil;
+  node->left = (GtkRBNode *) &nil;
+  node->right = (GtkRBNode *) &nil;
+  node->parent = (GtkRBNode *) &nil;
   node->flags = GTK_RBNODE_RED;
   node->total_count = 1;
   node->count = 1;
@@ -357,9 +357,8 @@ _gtk_rbtree_new (void)
   retval->parent_tree = NULL;
   retval->parent_node = NULL;
 
-  retval->nil = (GtkRBNode *) &nil;
+  retval->root = (GtkRBNode *) &nil;
 
-  retval->root = retval->nil;
   return retval;
 }
 
@@ -473,11 +472,11 @@ _gtk_rbtree_insert_after (GtkRBTree *tree,
     }
   /* setup new node */
   node = _gtk_rbnode_new (tree, height);
-  node->parent = (current?current:tree->nil);
 
   /* insert node in tree */
   if (current)
     {
+      node->parent = current;
       if (right)
        current->right = node;
       else
@@ -541,11 +540,11 @@ _gtk_rbtree_insert_before (GtkRBTree *tree,
 
   /* setup new node */
   node = _gtk_rbnode_new (tree, height);
-  node->parent = (current?current:tree->nil);
 
   /* insert node in tree */
   if (current)
     {
+      node->parent = current;
       if (left)
        current->left = node;
       else
@@ -1666,8 +1665,6 @@ _gtk_rbtree_test (const gchar *where,
   while (tmp_tree->parent_tree)
     tmp_tree = tmp_tree->parent_tree;
   
-  g_assert (tmp_tree->nil != NULL);
-
   if (_gtk_rbtree_is_nil (tmp_tree->root))
     return;
 
index 293f7bacc38f8db8a427583f623a20f88da14102..173b141beb14bdcb7f424aa42a4921552d1f21f6 100644 (file)
@@ -57,7 +57,6 @@ typedef void (*GtkRBTreeTraverseFunc) (GtkRBTree  *tree,
 struct _GtkRBTree
 {
   GtkRBNode *root;
-  GtkRBNode *nil;
   GtkRBTree *parent_tree;
   GtkRBNode *parent_node;
 };
index 7e515096e870e490f8e8ab56842743bd0cbc84ef..dfcc73234f1be399f180676e5c21ee97811ca53e 100644 (file)
@@ -213,8 +213,6 @@ _gtk_rbtree_test (GtkRBTree *tree)
   while (tmp_tree->parent_tree)
     tmp_tree = tmp_tree->parent_tree;
   
-  g_assert (tmp_tree->nil != NULL);
-
   if (_gtk_rbtree_is_nil (tmp_tree->root))
     return;