[gtk/wip/otte/for-master: 3/10] rbtree: Simplify code



commit dbf051ad9008184ee64c44cb609b9dc133d18242
Author: Benjamin Otte <otte redhat com>
Date:   Thu Mar 5 06:51:32 2020 +0100

    rbtree: Simplify code
    
    This makes it easier to understand for gcc (and hopefully humans, too)
    that by rotating we essentially just swap `node` and `p`.

 gtk/gtkrbtree.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)
---
diff --git a/gtk/gtkrbtree.c b/gtk/gtkrbtree.c
index 219222b1e8..55914d7cb6 100644
--- a/gtk/gtkrbtree.c
+++ b/gtk/gtkrbtree.c
@@ -381,10 +381,9 @@ gtk_rb_tree_insert_fixup (GtkRbTree *tree,
              if (node == p->right)
                {
                  /* make node a left child */
-                 node = p;
-                 gtk_rb_node_rotate_left (tree, node);
-                  p = parent (node);
-                  pp = parent (p);
+                 gtk_rb_node_rotate_left (tree, p);
+                 p = node;
+                  node = p->left;
                }
              /* recolor and rotate */
               set_black (p);
@@ -410,10 +409,9 @@ gtk_rb_tree_insert_fixup (GtkRbTree *tree,
               /* uncle is black */
              if (node == p->left)
                {
-                 node = p;
-                 gtk_rb_node_rotate_right (tree, node);
-                  p = parent (node);
-                  pp = parent (p);
+                 gtk_rb_node_rotate_right (tree, p);
+                 p = node;
+                  node = p->right;
                }
              set_black (p);
              set_red (pp);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]