A small rbtree delete fixup optimization.
Setting node color to black is not required here because it is already black. Besides in the original algorithm the node pointer is discarded and the node is set to tree root just to quit the loop. Thanks to 洪志道 (Hong Zhi Dao).
This commit is contained in:
@@ -399,7 +399,7 @@ nxt_rbtree_delete_fixup(nxt_rbtree_t *tree, nxt_rbtree_node_t *node)
|
|||||||
|
|
||||||
nxt_rbtree_left_rotate(parent);
|
nxt_rbtree_left_rotate(parent);
|
||||||
|
|
||||||
break;
|
return;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
sibling = parent->left;
|
sibling = parent->left;
|
||||||
@@ -437,7 +437,7 @@ nxt_rbtree_delete_fixup(nxt_rbtree_t *tree, nxt_rbtree_node_t *node)
|
|||||||
|
|
||||||
nxt_rbtree_right_rotate(parent);
|
nxt_rbtree_right_rotate(parent);
|
||||||
|
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user