diff --git a/[refs] b/[refs] index 3faff66512d4..3f3a573868d3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 21f1d5fc592e145574dede8debe9603334d08fde +refs/heads/master: 1975e59375756da4ff4e6e7d12f67485e813ace0 diff --git a/trunk/lib/rbtree.c b/trunk/lib/rbtree.c index 14b791ac5089..63473e04f18a 100644 --- a/trunk/lib/rbtree.c +++ b/trunk/lib/rbtree.c @@ -243,18 +243,13 @@ void rb_erase(struct rb_node *node, struct rb_root *root) if (child) child->rb_parent = parent; - if (parent) - { - if (parent->rb_left == node) - parent->rb_left = child; - else - parent->rb_right = child; - } - else - root->rb_node = child; - if (node->rb_parent == old) + if (node->rb_parent == old) { + parent->rb_right = child; parent = node; + } else + parent->rb_left = child; + node->rb_parent = old->rb_parent; node->rb_color = old->rb_color; node->rb_right = old->rb_right;