From: Igor Sysoev Date: Mon, 29 May 2017 07:17:36 +0000 (+0300) Subject: A small rbtree delete fixup optimization. X-Git-Tag: 0.1.11~34 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=97c569b7808171f8695552025bd4c93b5c101dc8;p=njs.git 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). --- diff --git a/nxt/nxt_rbtree.c b/nxt/nxt_rbtree.c index 6b5cd1be..390464f6 100644 --- a/nxt/nxt_rbtree.c +++ b/nxt/nxt_rbtree.c @@ -402,7 +402,7 @@ nxt_rbtree_delete_fixup(nxt_rbtree_t *tree, nxt_rbtree_node_t *node) nxt_rbtree_left_rotate(parent); - break; + return; } else { sibling = parent->left; @@ -440,7 +440,7 @@ nxt_rbtree_delete_fixup(nxt_rbtree_t *tree, nxt_rbtree_node_t *node) nxt_rbtree_right_rotate(parent); - break; + return; } }