summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2013-06-07 20:44:19 +0200
committerRichard Braun <rbraun@sceen.net>2013-06-07 20:44:19 +0200
commit207a59c80f601feb60f74ed541cb35ac74f6b193 (patch)
tree7c0cb3031a473e757bd3c7e81fd9df14c72e6af9 /test
parent9e75942fcbc164b4725d2d4410c6211c5c0a4a57 (diff)
rdxtree: encode pointer type in entry address
Entry addresses are odd if they refer to an internal tree node. This change is required for the upcoming lockless concurrent code.
Diffstat (limited to 'test')
-rw-r--r--test/test_rdxtree.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/test/test_rdxtree.c b/test/test_rdxtree.c
index ead3aa3..be375bf 100644
--- a/test/test_rdxtree.c
+++ b/test/test_rdxtree.c
@@ -100,6 +100,7 @@ print_values(struct rdxtree_node *node, size_t index, size_t level)
static void
print_node(struct rdxtree_node *node, int height, size_t index, size_t level)
{
+ void *entry;
size_t i;
for (i = level; i > 0; i--)
@@ -107,8 +108,10 @@ print_node(struct rdxtree_node *node, int height, size_t index, size_t level)
printf("%zu:n (bm: " BM_FORMAT ")\n", index, node->alloc_bm);
- for (i = 0; i < ARRAY_SIZE(node->entries); i++)
- print_subtree(node->entries[i], height - 1, i, level + 1);
+ for (i = 0; i < ARRAY_SIZE(node->entries); i++) {
+ entry = rdxtree_entry_addr(node->entries[i]);
+ print_subtree(entry, height - 1, i, level + 1);
+ }
}
static void
@@ -126,10 +129,14 @@ print_subtree(struct rdxtree_node *node, int height, size_t index, size_t level)
static void
print_tree(struct rdxtree *tree)
{
+ void *root;
+
+ root = rdxtree_entry_addr(tree->root);
+
if (tree->height == 0)
- print_value(tree->root, 0, 0);
+ print_value(root, 0, 0);
else
- print_subtree(tree->root, tree->height, 0, 0);
+ print_subtree(root, tree->height, 0, 0);
}
static void