Skip to content

Commit e5a874e

Browse files
committed
more readable btree_walk output
1 parent d7eabf4 commit e5a874e

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

btree.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -923,7 +923,7 @@ int btree_add(struct btree *bt, unsigned char *key, unsigned char *val, size_t v
923923
}
924924

925925
/* Just a debugging function to check what's inside the whole btree... */
926-
void btree_walk(struct btree *bt, uint64_t nodeptr) {
926+
void btree_walk_rec(struct btree *bt, uint64_t nodeptr, int level) {
927927
struct btree_node *n;
928928
unsigned int j;
929929

@@ -935,13 +935,13 @@ void btree_walk(struct btree *bt, uint64_t nodeptr) {
935935
for (j = 0; j < n->numkeys; j++) {
936936
char *data;
937937
uint32_t datalen;
938+
int k;
938939

939940
if (n->children[j] != 0) {
940-
btree_walk(bt,n->children[j]);
941+
btree_walk_rec(bt,n->children[j],level+1);
941942
}
942-
if (j == 0)
943-
printf("Node at %llu, %d keys\n", nodeptr, (int)n->numkeys);
944-
printf(" Key %20s: ", n->keys+(j*BTREE_HASHED_KEY_LEN));
943+
for (k = 0; k < level; k++) printf(" ");
944+
printf("(@%llu) Key %20s: ", nodeptr, n->keys+(j*BTREE_HASHED_KEY_LEN));
945945
btree_alloc_size(bt,&datalen,n->values[j]);
946946
data = malloc(datalen+1);
947947
btree_pread(bt,data,datalen,n->values[j]);
@@ -952,6 +952,10 @@ void btree_walk(struct btree *bt, uint64_t nodeptr) {
952952
free(data);
953953
}
954954
if (n->children[j] != 0) {
955-
btree_walk(bt,n->children[j]);
955+
btree_walk_rec(bt,n->children[j], level+1);
956956
}
957957
}
958+
959+
void btree_walk(struct btree *bt, uint64_t nodeptr) {
960+
btree_walk_rec(bt,nodeptr,0);
961+
}

0 commit comments

Comments
 (0)