@@ -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