Mercurial > hg > nginx
comparison src/core/ngx_rbtree.c @ 861:4924b71d77f6
ngx_rbtree_insert_value()
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 20 Nov 2006 17:13:21 +0000 |
parents | a7c8cbb4c55f |
children | 68cc5e2e1a5d |
comparison
equal
deleted
inserted
replaced
860:201d017ea470 | 861:4924b71d77f6 |
---|---|
94 } | 94 } |
95 } | 95 } |
96 } | 96 } |
97 | 97 |
98 ngx_rbt_black(*root); | 98 ngx_rbt_black(*root); |
99 } | |
100 | |
101 | |
102 void | |
103 ngx_rbtree_insert_value(ngx_rbtree_node_t *temp, ngx_rbtree_node_t *node, | |
104 ngx_rbtree_node_t *sentinel) | |
105 { | |
106 for ( ;; ) { | |
107 | |
108 if (node->key < temp->key) { | |
109 | |
110 if (temp->left == sentinel) { | |
111 temp->left = node; | |
112 break; | |
113 } | |
114 | |
115 temp = temp->left; | |
116 | |
117 } else { | |
118 | |
119 if (temp->right == sentinel) { | |
120 temp->right = node; | |
121 break; | |
122 } | |
123 | |
124 temp = temp->right; | |
125 } | |
126 } | |
127 | |
128 node->parent = temp; | |
129 node->left = sentinel; | |
130 node->right = sentinel; | |
131 ngx_rbt_red(node); | |
99 } | 132 } |
100 | 133 |
101 | 134 |
102 void | 135 void |
103 ngx_rbtree_insert_timer_value(ngx_rbtree_node_t *temp, ngx_rbtree_node_t *node, | 136 ngx_rbtree_insert_timer_value(ngx_rbtree_node_t *temp, ngx_rbtree_node_t *node, |