Skip to content

Commit 39b1dc2

Browse files
committed
add debug info
1 parent 2ea1ea3 commit 39b1dc2

File tree

2 files changed

+10
-17
lines changed

2 files changed

+10
-17
lines changed

include/btree.h

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
#include <memory>
3030

3131
#define BLOCKSIZE 4096
32-
#define T 255
32+
#define T 255
3333
#define LEAF 0x0001
3434
#define ONDISK 0x0002
3535

@@ -104,11 +104,16 @@ namespace alg {
104104
*/
105105
int32_t search(node x, int32_t k) {
106106
int32_t i = 0;
107-
while (i<x->n && k > x->key[i]) i++;
107+
while (i<x->n && (k > x->key[i])) i++;
108108

109109
if (i<x->n && k == x->key[i]) {
110110
return i;
111111
} else if (x->flag & LEAF) {
112+
int c;
113+
for (c=0;c<x->n;c++) {
114+
printf("%d ", x->key[c]);
115+
}
116+
printf("[%d]\n", x->key[i]);
112117
return -1;
113118
} else {
114119
std::auto_ptr<node_t> xi(READ(x, i));
@@ -151,11 +156,7 @@ namespace alg {
151156
*/
152157
void * allocate_node() {
153158
node x = (node)malloc(sizeof(node_t));
154-
x->n = 0;
155-
x->offset = 0;
156-
x->flag = 0;
157-
memset(x->key, 0, sizeof(x->key));
158-
memset(x->c, 0, sizeof(x->c));
159+
memset(x, 0, sizeof(node_t));
159160
return x;
160161
}
161162

@@ -165,11 +166,7 @@ namespace alg {
165166
void split_child(node x, int32_t i) {
166167
std::auto_ptr<node_t> z((node)allocate_node());
167168
std::auto_ptr<node_t> y(READ(x, i));
168-
z->flag &= ~LEAF;
169169
z->flag |= (y->flag & LEAF);
170-
printf("leafz:%x\n", z->flag);
171-
printf("leafy:%x\n", y->flag);
172-
printf("leafx:%x offset:%x\n", x->flag, x->offset);
173170
z->n = T - 1;
174171

175172
int32_t j;
@@ -188,10 +185,8 @@ namespace alg {
188185
WRITE(z.get());
189186

190187
for (j=x->n;j>=i+1;j--) {
191-
x->c[j+1] = x->c[j]; // shift
188+
x->c[j+1] = x->c[j]; // right shift
192189
}
193-
194-
// save z
195190
x->c[i+1] = z->offset;
196191

197192
for (j=x->n-1;j>=i;j--) {

src/btree_demo.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,9 @@ int main(void) {
66
BTree x("./btree.dat");
77
int32_t i;
88

9-
/*
109
for (i=0;i<1024;i++) {
11-
x.Insert(i);
10+
x.Insert(i);
1211
}
13-
*/
1412

1513
for(i=0;i<1024;i++) {
1614
int32_t r = x.Search(i);

0 commit comments

Comments
 (0)