summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Ekstrand <jason@jlekstrand.net>2019-09-19 15:17:24 -0500
committerJason Ekstrand <jason@jlekstrand.net>2019-09-20 17:37:25 +0000
commitdae33052dbfec843d5e997dbd93049d702977fa6 (patch)
treeecb34fd5b67cae561df8d2cb187abcaf379763f4
parentd35d7346d2446d8638b90425607c3f25fc339008 (diff)
downloadmesa-dae33052dbfec843d5e997dbd93049d702977fa6.tar.gz
util/rb_tree: Reverse the order of comparison functions
The new order matches that of the comparison functions accepted by the C standard library qsort() functions. Being consistent with qsort will hopefully help avoid developer confusion. The only current user of the red-black tree is aub_mem.c which is pretty easy to fix up. Reviewed-by: Lionel Landwerlin <lionel.g.lndwerlin@intel.com>
-rw-r--r--src/intel/tools/aub_mem.c4
-rw-r--r--src/util/rb_tree.h10
-rw-r--r--src/util/rb_tree_test.c4
3 files changed, 9 insertions, 9 deletions
diff --git a/src/intel/tools/aub_mem.c b/src/intel/tools/aub_mem.c
index f436627d19d..2f70afc8b76 100644
--- a/src/intel/tools/aub_mem.c
+++ b/src/intel/tools/aub_mem.c
@@ -87,9 +87,9 @@ static inline int
cmp_uint64(uint64_t a, uint64_t b)
{
if (a < b)
- return -1;
- if (a > b)
return 1;
+ if (a > b)
+ return -1;
return 0;
}
diff --git a/src/util/rb_tree.h b/src/util/rb_tree.h
index 1e8aeb4a7b2..efdfb0411f1 100644
--- a/src/util/rb_tree.h
+++ b/src/util/rb_tree.h
@@ -127,7 +127,7 @@ rb_tree_insert(struct rb_tree *T, struct rb_node *node,
bool left = false;
while (x != NULL) {
y = x;
- left = cmp(node, x) < 0;
+ left = cmp(x, node) < 0;
if (left)
x = x->left;
else
@@ -167,9 +167,9 @@ rb_tree_search(struct rb_tree *T, const void *key,
while (x != NULL) {
int c = cmp(x, key);
if (c < 0)
- x = x->right;
- else if (c > 0)
x = x->left;
+ else if (c > 0)
+ x = x->right;
else
return x;
}
@@ -205,9 +205,9 @@ rb_tree_search_sloppy(struct rb_tree *T, const void *key,
y = x;
int c = cmp(x, key);
if (c < 0)
- x = x->right;
- else if (c > 0)
x = x->left;
+ else if (c > 0)
+ x = x->right;
else
return x;
}
diff --git a/src/util/rb_tree_test.c b/src/util/rb_tree_test.c
index c56a90e83c5..a5952b3b52d 100644
--- a/src/util/rb_tree_test.c
+++ b/src/util/rb_tree_test.c
@@ -56,7 +56,7 @@ static int
rb_test_node_cmp_void(const struct rb_node *n, const void *v)
{
struct rb_test_node *tn = rb_node_data(struct rb_test_node, n, node);
- return tn->key - *(int *)v;
+ return *(int *)v - tn->key;
}
static int
@@ -65,7 +65,7 @@ rb_test_node_cmp(const struct rb_node *a, const struct rb_node *b)
struct rb_test_node *ta = rb_node_data(struct rb_test_node, a, node);
struct rb_test_node *tb = rb_node_data(struct rb_test_node, b, node);
- return ta->key - tb->key;
+ return tb->key - ta->key;
}
static void