]> git.kaiwu.me - njs.git/commitdiff
Returning an intptr_t result by rbtree comparison function
authorIgor Sysoev <igor@sysoev.ru>
Thu, 15 Sep 2016 15:00:55 +0000 (18:00 +0300)
committerIgor Sysoev <igor@sysoev.ru>
Thu, 15 Sep 2016 15:00:55 +0000 (18:00 +0300)
decreases overhead required to implement correct addresses
comparison without result truncation.

nxt/nxt_mem_cache_pool.c
nxt/nxt_rbtree.c
nxt/nxt_rbtree.h
nxt/test/rbtree_unit_test.c

index 272bc199860113028b947ff6afa8ae212b1d88ad..06a47d53e5884002d1f69fed3fd3375834c1982a 100644 (file)
@@ -131,7 +131,7 @@ static nxt_mem_cache_block_t *
     nxt_mem_cache_alloc_cluster(nxt_mem_cache_pool_t *pool);
 static void *nxt_mem_cache_alloc_large(nxt_mem_cache_pool_t *pool,
     size_t alignment, size_t size);
-static nxt_int_t nxt_mem_cache_rbtree_compare(nxt_rbtree_node_t *node1,
+static intptr_t nxt_mem_cache_rbtree_compare(nxt_rbtree_node_t *node1,
     nxt_rbtree_node_t *node2);
 static nxt_mem_cache_block_t *nxt_mem_cache_find_block(nxt_rbtree_t *tree,
     u_char *p);
@@ -597,7 +597,7 @@ nxt_mem_cache_alloc_large(nxt_mem_cache_pool_t *pool, size_t alignment,
 }
 
 
-static nxt_int_t
+static intptr_t
 nxt_mem_cache_rbtree_compare(nxt_rbtree_node_t *node1, nxt_rbtree_node_t *node2)
 {
     nxt_mem_cache_block_t  *block1, *block2;
index c497f6c54dfb66bbf65421e6d27994477f985ff3..aa38f55ce208952ff0adce923132332b8b15c493 100644 (file)
@@ -176,7 +176,7 @@ nxt_rbtree_insert_fixup(nxt_rbtree_node_t *node)
 nxt_rbtree_node_t *
 nxt_rbtree_find(nxt_rbtree_t *tree, nxt_rbtree_part_t *part)
 {
-    nxt_int_t             n;
+    intptr_t              n;
     nxt_rbtree_node_t     *node, *next, *sentinel;
     nxt_rbtree_compare_t  compare;
 
@@ -210,7 +210,7 @@ nxt_rbtree_find(nxt_rbtree_t *tree, nxt_rbtree_part_t *part)
 nxt_rbtree_node_t *
 nxt_rbtree_find_less_or_equal(nxt_rbtree_t *tree, nxt_rbtree_part_t *part)
 {
-    nxt_int_t             n;
+    intptr_t              n;
     nxt_rbtree_node_t     *node, *retval, *next, *sentinel;
     nxt_rbtree_compare_t  compare;
 
@@ -247,7 +247,7 @@ nxt_rbtree_find_less_or_equal(nxt_rbtree_t *tree, nxt_rbtree_part_t *part)
 nxt_rbtree_node_t *
 nxt_rbtree_find_greater_or_equal(nxt_rbtree_t *tree, nxt_rbtree_part_t *part)
 {
-    nxt_int_t             n;
+    intptr_t              n;
     nxt_rbtree_node_t     *node, *retval, *next, *sentinel;
     nxt_rbtree_compare_t  compare;
 
@@ -284,7 +284,7 @@ nxt_rbtree_find_greater_or_equal(nxt_rbtree_t *tree, nxt_rbtree_part_t *part)
 void
 nxt_rbtree_delete(nxt_rbtree_t *tree, nxt_rbtree_part_t *part)
 {
-    nxt_uint_t         color;
+    uint8_t            color;
     nxt_rbtree_node_t  *node, *sentinel, *subst, *child;
 
     node = (nxt_rbtree_node_t *) part;
index 00ffb6506a321acfa6a5d8129ded5e53cfb35323..00adc8bd69b9aefb776d62a604036324a62adc7d 100644 (file)
@@ -39,7 +39,7 @@ typedef struct {
 } nxt_rbtree_t;
 
 
-typedef nxt_int_t (*nxt_rbtree_compare_t)(nxt_rbtree_node_t *node1,
+typedef intptr_t (*nxt_rbtree_compare_t)(nxt_rbtree_node_t *node1,
     nxt_rbtree_node_t *node2);
 
 
index 4817b55ab5fef54e13a3d542b5c9c628e1d820d5..5eeed149dcfc10da360449ccf185c1baffefc78e 100644 (file)
@@ -20,7 +20,7 @@ typedef struct {
 } nxt_rbtree_test_t;
 
 
-static nxt_int_t rbtree_unit_test_comparison(nxt_rbtree_node_t *node1,
+static intptr_t rbtree_unit_test_comparison(nxt_rbtree_node_t *node1,
     nxt_rbtree_node_t *node2);
 static nxt_int_t rbtree_unit_test_compare(uint32_t key1, uint32_t key2);
 static int nxt_cdecl rbtree_unit_test_sort_cmp(const void *one,
@@ -132,9 +132,8 @@ fail:
 }
 
 
-static nxt_int_t
-rbtree_unit_test_comparison(nxt_rbtree_node_t *node1,
-    nxt_rbtree_node_t *node2)
+static intptr_t
+rbtree_unit_test_comparison(nxt_rbtree_node_t *node1, nxt_rbtree_node_t *node2)
 {
     nxt_rbtree_test_t  *item1, *item2;