diff options
author | Igor Sysoev <igor@sysoev.ru> | 2003-12-05 07:11:46 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2003-12-05 07:11:46 +0000 |
commit | faca119aa5b2375d247c4948ba6791e7d8d2b8bc (patch) | |
tree | f20b0776f49cb24e7ea83bae57cb6c135b73c445 /src/core | |
parent | f5003d8a66790932cae5168a913ae234cd4ce709 (diff) | |
download | nginx-faca119aa5b2375d247c4948ba6791e7d8d2b8bc.tar.gz nginx-faca119aa5b2375d247c4948ba6791e7d8d2b8bc.zip |
nginx-0.0.1-2003-12-05-10:11:46 import
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/ngx_rbtree.c | 11 | ||||
-rw-r--r-- | src/core/ngx_rbtree.h | 2 |
2 files changed, 6 insertions, 7 deletions
diff --git a/src/core/ngx_rbtree.c b/src/core/ngx_rbtree.c index 2bc4650f0..ea78e2254 100644 --- a/src/core/ngx_rbtree.c +++ b/src/core/ngx_rbtree.c @@ -8,12 +8,11 @@ * to Algorithms" by Cormen, Leiserson and Rivest. */ -#define ngx_rbt_red(node) ((uintptr_t) (node)->data |= 1) -#define ngx_rbt_black(node) ((uintptr_t) (node)->data &= ~1) -#define ngx_rbt_is_red(node) ((uintptr_t) (node)->data & 1) +#define ngx_rbt_red(node) ((node)->color = 1) +#define ngx_rbt_black(node) ((node)->color = 0) +#define ngx_rbt_is_red(node) ((node)->color) #define ngx_rbt_is_black(node) (!ngx_rbt_is_red(node)) -#define ngx_rbt_copy_color(n1, n2) \ - ((uintptr_t) (n1)->data |= (uintptr_t) (n2)->data & 1) +#define ngx_rbt_copy_color(n1, n2) (n1->color = n2->color) ngx_inline void ngx_rbtree_left_rotate(ngx_rbtree_t **root, ngx_rbtree_t *node); @@ -166,7 +165,7 @@ void ngx_rbtree_delete(ngx_rbtree_t **root, ngx_rbtree_t *node) if (subst != node) { node->key = subst->key; - node->data = subst->data; + node->color = subst->color; } if (ngx_rbt_is_red(subst)) { diff --git a/src/core/ngx_rbtree.h b/src/core/ngx_rbtree.h index de6fef904..af0f2ec37 100644 --- a/src/core/ngx_rbtree.h +++ b/src/core/ngx_rbtree.h @@ -13,7 +13,7 @@ struct ngx_rbtree_s { ngx_rbtree_t *left; ngx_rbtree_t *right; ngx_rbtree_t *parent; - void *data; + char color; }; extern ngx_rbtree_t sentinel; |