Tweaked lfs3_btree/bshrub_traverse to include weight
Not sure why we weren't already, it doesn't really make sense to return
bid without weight, and this matches lfs3_btree/bshrub_lookupnext.
Sure we don't need weight currently, but this is useful to include in
case we need it in the future (lfs3_bptr_fetch during traversal?).
And while we're not using it, the compiler is happy to optimize it out,
so no code changes:
code stack ctx
before: 37964 2424 636
after 37964 (+0.0%) 2424 (+0.0%) 636 (+0.0%)
This commit is contained in:
@@ -6282,7 +6282,8 @@ static void lfs3_btraversal_init(lfs3_btraversal_t *bt) {
|
|||||||
#ifndef LFS3_2BONLY
|
#ifndef LFS3_2BONLY
|
||||||
static int lfs3_btree_traverse(lfs3_t *lfs3, const lfs3_btree_t *btree,
|
static int lfs3_btree_traverse(lfs3_t *lfs3, const lfs3_btree_t *btree,
|
||||||
lfs3_btraversal_t *bt,
|
lfs3_btraversal_t *bt,
|
||||||
lfs3_bid_t *bid_, lfs3_tag_t *tag_, lfs3_data_t *data_) {
|
lfs3_bid_t *bid_, lfs3_tag_t *tag_, lfs3_bid_t *weight_,
|
||||||
|
lfs3_data_t *data_) {
|
||||||
// explicitly traverse the root even if weight=0
|
// explicitly traverse the root even if weight=0
|
||||||
if (!bt->branch) {
|
if (!bt->branch) {
|
||||||
bt->branch = btree;
|
bt->branch = btree;
|
||||||
@@ -6300,6 +6301,9 @@ static int lfs3_btree_traverse(lfs3_t *lfs3, const lfs3_btree_t *btree,
|
|||||||
if (tag_) {
|
if (tag_) {
|
||||||
*tag_ = LFS3_TAG_BRANCH;
|
*tag_ = LFS3_TAG_BRANCH;
|
||||||
}
|
}
|
||||||
|
if (weight_) {
|
||||||
|
*weight_ = btree->weight;
|
||||||
|
}
|
||||||
if (data_) {
|
if (data_) {
|
||||||
data_->u.buffer = (const uint8_t*)bt->branch;
|
data_->u.buffer = (const uint8_t*)bt->branch;
|
||||||
}
|
}
|
||||||
@@ -6357,6 +6361,9 @@ static int lfs3_btree_traverse(lfs3_t *lfs3, const lfs3_btree_t *btree,
|
|||||||
if (tag_) {
|
if (tag_) {
|
||||||
*tag_ = LFS3_TAG_BRANCH;
|
*tag_ = LFS3_TAG_BRANCH;
|
||||||
}
|
}
|
||||||
|
if (weight_) {
|
||||||
|
*weight_ = weight__;
|
||||||
|
}
|
||||||
if (data_) {
|
if (data_) {
|
||||||
data_->u.buffer = (const uint8_t*)bt->branch;
|
data_->u.buffer = (const uint8_t*)bt->branch;
|
||||||
}
|
}
|
||||||
@@ -6379,6 +6386,9 @@ static int lfs3_btree_traverse(lfs3_t *lfs3, const lfs3_btree_t *btree,
|
|||||||
if (tag_) {
|
if (tag_) {
|
||||||
*tag_ = tag__;
|
*tag_ = tag__;
|
||||||
}
|
}
|
||||||
|
if (weight_) {
|
||||||
|
*weight_ = weight__;
|
||||||
|
}
|
||||||
if (data_) {
|
if (data_) {
|
||||||
*data_ = data__;
|
*data_ = data__;
|
||||||
}
|
}
|
||||||
@@ -6742,9 +6752,10 @@ static int lfs3_bshrub_lookup(lfs3_t *lfs3, const lfs3_bshrub_t *bshrub,
|
|||||||
#ifndef LFS3_2BONLY
|
#ifndef LFS3_2BONLY
|
||||||
static int lfs3_bshrub_traverse(lfs3_t *lfs3, const lfs3_bshrub_t *bshrub,
|
static int lfs3_bshrub_traverse(lfs3_t *lfs3, const lfs3_bshrub_t *bshrub,
|
||||||
lfs3_btraversal_t *bt,
|
lfs3_btraversal_t *bt,
|
||||||
lfs3_bid_t *bid_, lfs3_tag_t *tag_, lfs3_data_t *data_) {
|
lfs3_bid_t *bid_, lfs3_tag_t *tag_, lfs3_bid_t *weight_,
|
||||||
|
lfs3_data_t *data_) {
|
||||||
return lfs3_btree_traverse(lfs3, &bshrub->shrub, bt,
|
return lfs3_btree_traverse(lfs3, &bshrub->shrub, bt,
|
||||||
bid_, tag_, data_);
|
bid_, tag_, weight_, data_);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -9959,7 +9970,7 @@ static int lfs3_mtree_traverse_(lfs3_t *lfs3, lfs3_traversal_t *t,
|
|||||||
case LFS3_TSTATE_OBTREE:;
|
case LFS3_TSTATE_OBTREE:;
|
||||||
// traverse through our bshrub/btree
|
// traverse through our bshrub/btree
|
||||||
err = lfs3_bshrub_traverse(lfs3, &t->b, &t->u.bt,
|
err = lfs3_bshrub_traverse(lfs3, &t->b, &t->u.bt,
|
||||||
NULL, &tag, &data);
|
NULL, &tag, NULL, &data);
|
||||||
if (err) {
|
if (err) {
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
// clear the bshrub state
|
// clear the bshrub state
|
||||||
@@ -14193,7 +14204,7 @@ static int lfs3_file_ck(lfs3_t *lfs3, const lfs3_file_t *file,
|
|||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_bshrub_traverse(lfs3, &file->b, &bt,
|
int err = lfs3_bshrub_traverse(lfs3, &file->b, &bt,
|
||||||
NULL, &tag, &data);
|
NULL, &tag, NULL, &data);
|
||||||
if (err) {
|
if (err) {
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
|
|||||||
+18
-10
@@ -4281,9 +4281,10 @@ code = '''
|
|||||||
|
|
||||||
lfs3_bid_t bid;
|
lfs3_bid_t bid;
|
||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
|
lfs3_bid_t weight;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_btree_traverse(&lfs3, &btree, &bt,
|
int err = lfs3_btree_traverse(&lfs3, &btree, &bt,
|
||||||
&bid, &tag, &data);
|
&bid, &tag, &weight, &data);
|
||||||
assert(!err || err == LFS3_ERR_NOENT);
|
assert(!err || err == LFS3_ERR_NOENT);
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
@@ -4291,25 +4292,28 @@ code = '''
|
|||||||
|
|
||||||
if (tag == LFS3_TAG_BRANCH) {
|
if (tag == LFS3_TAG_BRANCH) {
|
||||||
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
||||||
printf("traversal: %d 0x%x btree 0x%x.%x\n",
|
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
rbyd->blocks[0], rbyd->trunk);
|
rbyd->blocks[0], rbyd->trunk);
|
||||||
|
|
||||||
// keep track of seen blocks
|
// keep track of seen blocks
|
||||||
seen[rbyd->blocks[0] / 8] |= 1 << (rbyd->blocks[0] % 8);
|
seen[rbyd->blocks[0] / 8] |= 1 << (rbyd->blocks[0] % 8);
|
||||||
|
|
||||||
} else if (tag == LFS3_TAG_DATA) {
|
} else if (tag == LFS3_TAG_DATA) {
|
||||||
printf("traversal: %d 0x%x data %d\n",
|
printf("traversal: %d 0x%x w%d data %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
lfs3_data_size(data));
|
lfs3_data_size(data));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// well this shouldn't happen
|
// well this shouldn't happen
|
||||||
printf("traversal: %d 0x%x\n",
|
printf("traversal: %d 0x%x w%d\n",
|
||||||
bid,
|
bid,
|
||||||
tag);
|
tag,
|
||||||
|
weight);
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4435,9 +4439,10 @@ code = '''
|
|||||||
|
|
||||||
lfs3_bid_t bid;
|
lfs3_bid_t bid;
|
||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
|
lfs3_bid_t weight;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_btree_traverse(&lfs3, &btree, &bt,
|
int err = lfs3_btree_traverse(&lfs3, &btree, &bt,
|
||||||
&bid, &tag, &data);
|
&bid, &tag, &weight, &data);
|
||||||
assert(!err || err == LFS3_ERR_NOENT);
|
assert(!err || err == LFS3_ERR_NOENT);
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
@@ -4445,25 +4450,28 @@ code = '''
|
|||||||
|
|
||||||
if (tag == LFS3_TAG_BRANCH) {
|
if (tag == LFS3_TAG_BRANCH) {
|
||||||
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
||||||
printf("traversal: %d 0x%x btree 0x%x.%x\n",
|
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
rbyd->blocks[0], rbyd->trunk);
|
rbyd->blocks[0], rbyd->trunk);
|
||||||
|
|
||||||
// keep track of seen blocks
|
// keep track of seen blocks
|
||||||
seen[rbyd->blocks[0] / 8] |= 1 << (rbyd->blocks[0] % 8);
|
seen[rbyd->blocks[0] / 8] |= 1 << (rbyd->blocks[0] % 8);
|
||||||
|
|
||||||
} else if (tag == LFS3_TAG_DATA) {
|
} else if (tag == LFS3_TAG_DATA) {
|
||||||
printf("traversal: %d 0x%x data %d\n",
|
printf("traversal: %d 0x%x w%d data %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
lfs3_data_size(data));
|
lfs3_data_size(data));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// well this shouldn't happen
|
// well this shouldn't happen
|
||||||
printf("traversal: %d 0x%x\n",
|
printf("traversal: %d 0x%x w%d\n",
|
||||||
bid,
|
bid,
|
||||||
tag);
|
tag,
|
||||||
|
weight);
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+110
-60
@@ -191,9 +191,10 @@ code = '''
|
|||||||
|
|
||||||
lfs3_bid_t bid;
|
lfs3_bid_t bid;
|
||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
|
lfs3_bid_t weight;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
||||||
&bid, &tag, &data);
|
&bid, &tag, &weight, &data);
|
||||||
assert(!err || err == LFS3_ERR_NOENT);
|
assert(!err || err == LFS3_ERR_NOENT);
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
@@ -201,15 +202,17 @@ code = '''
|
|||||||
|
|
||||||
if (tag == LFS3_TAG_BRANCH) {
|
if (tag == LFS3_TAG_BRANCH) {
|
||||||
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
||||||
printf("traversal: %d 0x%x btree 0x%x.%x\n",
|
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
rbyd->blocks[0], rbyd->trunk);
|
rbyd->blocks[0], rbyd->trunk);
|
||||||
|
|
||||||
} else if (tag == LFS3_TAG_DATA) {
|
} else if (tag == LFS3_TAG_DATA) {
|
||||||
printf("traversal: %d 0x%x data %d\n",
|
printf("traversal: %d 0x%x w%d data %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
lfs3_data_size(data));
|
lfs3_data_size(data));
|
||||||
|
|
||||||
// keep track of how many fragments we've seen
|
// keep track of how many fragments we've seen
|
||||||
@@ -219,9 +222,10 @@ code = '''
|
|||||||
lfs3_bptr_t bptr;
|
lfs3_bptr_t bptr;
|
||||||
lfs3_data_readbptr(&lfs3, &data,
|
lfs3_data_readbptr(&lfs3, &data,
|
||||||
&bptr) => 0;
|
&bptr) => 0;
|
||||||
printf("traversal: %d 0x%x block 0x%x.%x %d\n",
|
printf("traversal: %d 0x%x w%d block 0x%x.%x %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
bptr.data.u.disk.block,
|
bptr.data.u.disk.block,
|
||||||
bptr.data.u.disk.off,
|
bptr.data.u.disk.off,
|
||||||
lfs3_data_size(bptr.data));
|
lfs3_data_size(bptr.data));
|
||||||
@@ -232,9 +236,10 @@ code = '''
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// well this shouldn't happen
|
// well this shouldn't happen
|
||||||
printf("traversal: %d 0x%x\n",
|
printf("traversal: %d 0x%x w%d\n",
|
||||||
bid,
|
bid,
|
||||||
tag);
|
tag,
|
||||||
|
weight);
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -334,9 +339,10 @@ code = '''
|
|||||||
|
|
||||||
lfs3_bid_t bid;
|
lfs3_bid_t bid;
|
||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
|
lfs3_bid_t weight;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
||||||
&bid, &tag, &data);
|
&bid, &tag, &weight, &data);
|
||||||
assert(!err || err == LFS3_ERR_NOENT);
|
assert(!err || err == LFS3_ERR_NOENT);
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
@@ -344,15 +350,17 @@ code = '''
|
|||||||
|
|
||||||
if (tag == LFS3_TAG_BRANCH) {
|
if (tag == LFS3_TAG_BRANCH) {
|
||||||
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
||||||
printf("traversal: %d 0x%x btree 0x%x.%x\n",
|
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
rbyd->blocks[0], rbyd->trunk);
|
rbyd->blocks[0], rbyd->trunk);
|
||||||
|
|
||||||
} else if (tag == LFS3_TAG_DATA) {
|
} else if (tag == LFS3_TAG_DATA) {
|
||||||
printf("traversal: %d 0x%x data %d\n",
|
printf("traversal: %d 0x%x w%d data %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
lfs3_data_size(data));
|
lfs3_data_size(data));
|
||||||
|
|
||||||
// if block crystallization is working we shouldn't be
|
// if block crystallization is working we shouldn't be
|
||||||
@@ -363,9 +371,10 @@ code = '''
|
|||||||
lfs3_bptr_t bptr;
|
lfs3_bptr_t bptr;
|
||||||
lfs3_data_readbptr(&lfs3, &data,
|
lfs3_data_readbptr(&lfs3, &data,
|
||||||
&bptr) => 0;
|
&bptr) => 0;
|
||||||
printf("traversal: %d 0x%x block 0x%x.%x %d\n",
|
printf("traversal: %d 0x%x w%d block 0x%x.%x %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
bptr.data.u.disk.block,
|
bptr.data.u.disk.block,
|
||||||
bptr.data.u.disk.off,
|
bptr.data.u.disk.off,
|
||||||
lfs3_data_size(bptr.data));
|
lfs3_data_size(bptr.data));
|
||||||
@@ -375,9 +384,10 @@ code = '''
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// well this shouldn't happen
|
// well this shouldn't happen
|
||||||
printf("traversal: %d 0x%x\n",
|
printf("traversal: %d 0x%x w%d\n",
|
||||||
bid,
|
bid,
|
||||||
tag);
|
tag,
|
||||||
|
weight);
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -595,9 +605,10 @@ code = '''
|
|||||||
|
|
||||||
lfs3_bid_t bid;
|
lfs3_bid_t bid;
|
||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
|
lfs3_bid_t weight;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
||||||
&bid, &tag, &data);
|
&bid, &tag, &weight, &data);
|
||||||
assert(!err || err == LFS3_ERR_NOENT);
|
assert(!err || err == LFS3_ERR_NOENT);
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
@@ -605,15 +616,17 @@ code = '''
|
|||||||
|
|
||||||
if (tag == LFS3_TAG_BRANCH) {
|
if (tag == LFS3_TAG_BRANCH) {
|
||||||
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
||||||
printf("traversal: %d 0x%x btree 0x%x.%x\n",
|
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
rbyd->blocks[0], rbyd->trunk);
|
rbyd->blocks[0], rbyd->trunk);
|
||||||
|
|
||||||
} else if (tag == LFS3_TAG_DATA) {
|
} else if (tag == LFS3_TAG_DATA) {
|
||||||
printf("traversal: %d 0x%x data %d\n",
|
printf("traversal: %d 0x%x w%d data %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
lfs3_data_size(data));
|
lfs3_data_size(data));
|
||||||
|
|
||||||
// keep track of how many fragments we've seen
|
// keep track of how many fragments we've seen
|
||||||
@@ -623,9 +636,10 @@ code = '''
|
|||||||
lfs3_bptr_t bptr;
|
lfs3_bptr_t bptr;
|
||||||
lfs3_data_readbptr(&lfs3, &data,
|
lfs3_data_readbptr(&lfs3, &data,
|
||||||
&bptr) => 0;
|
&bptr) => 0;
|
||||||
printf("traversal: %d 0x%x block 0x%x.%x %d\n",
|
printf("traversal: %d 0x%x w%d block 0x%x.%x %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
bptr.data.u.disk.block,
|
bptr.data.u.disk.block,
|
||||||
bptr.data.u.disk.off,
|
bptr.data.u.disk.off,
|
||||||
lfs3_data_size(bptr.data));
|
lfs3_data_size(bptr.data));
|
||||||
@@ -636,9 +650,10 @@ code = '''
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// well this shouldn't happen
|
// well this shouldn't happen
|
||||||
printf("traversal: %d 0x%x\n",
|
printf("traversal: %d 0x%x w%d\n",
|
||||||
bid,
|
bid,
|
||||||
tag);
|
tag,
|
||||||
|
weight);
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -753,9 +768,10 @@ code = '''
|
|||||||
|
|
||||||
lfs3_bid_t bid;
|
lfs3_bid_t bid;
|
||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
|
lfs3_bid_t weight;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
||||||
&bid, &tag, &data);
|
&bid, &tag, &weight, &data);
|
||||||
assert(!err || err == LFS3_ERR_NOENT);
|
assert(!err || err == LFS3_ERR_NOENT);
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
@@ -763,15 +779,17 @@ code = '''
|
|||||||
|
|
||||||
if (tag == LFS3_TAG_BRANCH) {
|
if (tag == LFS3_TAG_BRANCH) {
|
||||||
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
||||||
printf("traversal: %d 0x%x btree 0x%x.%x\n",
|
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
rbyd->blocks[0], rbyd->trunk);
|
rbyd->blocks[0], rbyd->trunk);
|
||||||
|
|
||||||
} else if (tag == LFS3_TAG_DATA) {
|
} else if (tag == LFS3_TAG_DATA) {
|
||||||
printf("traversal: %d 0x%x data %d\n",
|
printf("traversal: %d 0x%x w%d data %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
lfs3_data_size(data));
|
lfs3_data_size(data));
|
||||||
|
|
||||||
// if block crystallization is working we shouldn't be
|
// if block crystallization is working we shouldn't be
|
||||||
@@ -782,9 +800,10 @@ code = '''
|
|||||||
lfs3_bptr_t bptr;
|
lfs3_bptr_t bptr;
|
||||||
lfs3_data_readbptr(&lfs3, &data,
|
lfs3_data_readbptr(&lfs3, &data,
|
||||||
&bptr) => 0;
|
&bptr) => 0;
|
||||||
printf("traversal: %d 0x%x block 0x%x.%x %d\n",
|
printf("traversal: %d 0x%x w%d block 0x%x.%x %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
bptr.data.u.disk.block,
|
bptr.data.u.disk.block,
|
||||||
bptr.data.u.disk.off,
|
bptr.data.u.disk.off,
|
||||||
lfs3_data_size(bptr.data));
|
lfs3_data_size(bptr.data));
|
||||||
@@ -794,9 +813,10 @@ code = '''
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// well this shouldn't happen
|
// well this shouldn't happen
|
||||||
printf("traversal: %d 0x%x\n",
|
printf("traversal: %d 0x%x w%d\n",
|
||||||
bid,
|
bid,
|
||||||
tag);
|
tag,
|
||||||
|
weight);
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2076,9 +2096,10 @@ code = '''
|
|||||||
|
|
||||||
lfs3_bid_t bid;
|
lfs3_bid_t bid;
|
||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
|
lfs3_bid_t weight;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
||||||
&bid, &tag, &data);
|
&bid, &tag, &weight, &data);
|
||||||
assert(!err || err == LFS3_ERR_NOENT);
|
assert(!err || err == LFS3_ERR_NOENT);
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
@@ -2086,15 +2107,17 @@ code = '''
|
|||||||
|
|
||||||
if (tag == LFS3_TAG_BRANCH) {
|
if (tag == LFS3_TAG_BRANCH) {
|
||||||
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
||||||
printf("traversal: %d 0x%x btree 0x%x.%x\n",
|
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
rbyd->blocks[0], rbyd->trunk);
|
rbyd->blocks[0], rbyd->trunk);
|
||||||
|
|
||||||
} else if (tag == LFS3_TAG_DATA) {
|
} else if (tag == LFS3_TAG_DATA) {
|
||||||
printf("traversal: %d 0x%x data %d\n",
|
printf("traversal: %d 0x%x w%d data %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
lfs3_data_size(data));
|
lfs3_data_size(data));
|
||||||
|
|
||||||
// keep track of how many fragments we've seen
|
// keep track of how many fragments we've seen
|
||||||
@@ -2104,9 +2127,10 @@ code = '''
|
|||||||
lfs3_bptr_t bptr;
|
lfs3_bptr_t bptr;
|
||||||
lfs3_data_readbptr(&lfs3, &data,
|
lfs3_data_readbptr(&lfs3, &data,
|
||||||
&bptr) => 0;
|
&bptr) => 0;
|
||||||
printf("traversal: %d 0x%x block 0x%x.%x %d\n",
|
printf("traversal: %d 0x%x w%d block 0x%x.%x %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
bptr.data.u.disk.block,
|
bptr.data.u.disk.block,
|
||||||
bptr.data.u.disk.off,
|
bptr.data.u.disk.off,
|
||||||
lfs3_data_size(bptr.data));
|
lfs3_data_size(bptr.data));
|
||||||
@@ -2116,9 +2140,10 @@ code = '''
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// well this shouldn't happen
|
// well this shouldn't happen
|
||||||
printf("traversal: %d 0x%x\n",
|
printf("traversal: %d 0x%x w%d\n",
|
||||||
bid,
|
bid,
|
||||||
tag);
|
tag,
|
||||||
|
weight);
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2223,9 +2248,10 @@ code = '''
|
|||||||
|
|
||||||
lfs3_bid_t bid;
|
lfs3_bid_t bid;
|
||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
|
lfs3_bid_t weight;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
||||||
&bid, &tag, &data);
|
&bid, &tag, &weight, &data);
|
||||||
assert(!err || err == LFS3_ERR_NOENT);
|
assert(!err || err == LFS3_ERR_NOENT);
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
@@ -2233,15 +2259,17 @@ code = '''
|
|||||||
|
|
||||||
if (tag == LFS3_TAG_BRANCH) {
|
if (tag == LFS3_TAG_BRANCH) {
|
||||||
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
||||||
printf("traversal: %d 0x%x btree 0x%x.%x\n",
|
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
rbyd->blocks[0], rbyd->trunk);
|
rbyd->blocks[0], rbyd->trunk);
|
||||||
|
|
||||||
} else if (tag == LFS3_TAG_DATA) {
|
} else if (tag == LFS3_TAG_DATA) {
|
||||||
printf("traversal: %d 0x%x data %d\n",
|
printf("traversal: %d 0x%x w%d data %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
lfs3_data_size(data));
|
lfs3_data_size(data));
|
||||||
|
|
||||||
// keep track of how many fragments we've seen
|
// keep track of how many fragments we've seen
|
||||||
@@ -2251,9 +2279,10 @@ code = '''
|
|||||||
lfs3_bptr_t bptr;
|
lfs3_bptr_t bptr;
|
||||||
lfs3_data_readbptr(&lfs3, &data,
|
lfs3_data_readbptr(&lfs3, &data,
|
||||||
&bptr) => 0;
|
&bptr) => 0;
|
||||||
printf("traversal: %d 0x%x block 0x%x.%x %d\n",
|
printf("traversal: %d 0x%x w%d block 0x%x.%x %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
bptr.data.u.disk.block,
|
bptr.data.u.disk.block,
|
||||||
bptr.data.u.disk.off,
|
bptr.data.u.disk.off,
|
||||||
lfs3_data_size(bptr.data));
|
lfs3_data_size(bptr.data));
|
||||||
@@ -2263,9 +2292,10 @@ code = '''
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// well this shouldn't happen
|
// well this shouldn't happen
|
||||||
printf("traversal: %d 0x%x\n",
|
printf("traversal: %d 0x%x w%d\n",
|
||||||
bid,
|
bid,
|
||||||
tag);
|
tag,
|
||||||
|
weight);
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2517,9 +2547,10 @@ code = '''
|
|||||||
|
|
||||||
lfs3_bid_t bid;
|
lfs3_bid_t bid;
|
||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
|
lfs3_bid_t weight;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
||||||
&bid, &tag, &data);
|
&bid, &tag, &weight, &data);
|
||||||
assert(!err || err == LFS3_ERR_NOENT);
|
assert(!err || err == LFS3_ERR_NOENT);
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
@@ -2527,15 +2558,17 @@ code = '''
|
|||||||
|
|
||||||
if (tag == LFS3_TAG_BRANCH) {
|
if (tag == LFS3_TAG_BRANCH) {
|
||||||
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
||||||
printf("traversal: %d 0x%x btree 0x%x.%x\n",
|
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
rbyd->blocks[0], rbyd->trunk);
|
rbyd->blocks[0], rbyd->trunk);
|
||||||
|
|
||||||
} else if (tag == LFS3_TAG_DATA) {
|
} else if (tag == LFS3_TAG_DATA) {
|
||||||
printf("traversal: %d 0x%x data %d\n",
|
printf("traversal: %d 0x%x w%d data %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
lfs3_data_size(data));
|
lfs3_data_size(data));
|
||||||
|
|
||||||
// keep track of how many fragments we've seen
|
// keep track of how many fragments we've seen
|
||||||
@@ -2545,9 +2578,10 @@ code = '''
|
|||||||
lfs3_bptr_t bptr;
|
lfs3_bptr_t bptr;
|
||||||
lfs3_data_readbptr(&lfs3, &data,
|
lfs3_data_readbptr(&lfs3, &data,
|
||||||
&bptr) => 0;
|
&bptr) => 0;
|
||||||
printf("traversal: %d 0x%x block 0x%x.%x %d\n",
|
printf("traversal: %d 0x%x w%d block 0x%x.%x %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
bptr.data.u.disk.block,
|
bptr.data.u.disk.block,
|
||||||
bptr.data.u.disk.off,
|
bptr.data.u.disk.off,
|
||||||
lfs3_data_size(bptr.data));
|
lfs3_data_size(bptr.data));
|
||||||
@@ -2558,9 +2592,10 @@ code = '''
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// well this shouldn't happen
|
// well this shouldn't happen
|
||||||
printf("traversal: %d 0x%x\n",
|
printf("traversal: %d 0x%x w%d\n",
|
||||||
bid,
|
bid,
|
||||||
tag);
|
tag,
|
||||||
|
weight);
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2679,9 +2714,10 @@ code = '''
|
|||||||
|
|
||||||
lfs3_bid_t bid;
|
lfs3_bid_t bid;
|
||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
|
lfs3_bid_t weight;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
||||||
&bid, &tag, &data);
|
&bid, &tag, &weight, &data);
|
||||||
assert(!err || err == LFS3_ERR_NOENT);
|
assert(!err || err == LFS3_ERR_NOENT);
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
@@ -2689,15 +2725,17 @@ code = '''
|
|||||||
|
|
||||||
if (tag == LFS3_TAG_BRANCH) {
|
if (tag == LFS3_TAG_BRANCH) {
|
||||||
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
||||||
printf("traversal: %d 0x%x btree 0x%x.%x\n",
|
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
rbyd->blocks[0], rbyd->trunk);
|
rbyd->blocks[0], rbyd->trunk);
|
||||||
|
|
||||||
} else if (tag == LFS3_TAG_DATA) {
|
} else if (tag == LFS3_TAG_DATA) {
|
||||||
printf("traversal: %d 0x%x data %d\n",
|
printf("traversal: %d 0x%x w%d data %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
lfs3_data_size(data));
|
lfs3_data_size(data));
|
||||||
|
|
||||||
// if block crystallization is working we shouldn't be
|
// if block crystallization is working we shouldn't be
|
||||||
@@ -2708,9 +2746,10 @@ code = '''
|
|||||||
lfs3_bptr_t bptr;
|
lfs3_bptr_t bptr;
|
||||||
lfs3_data_readbptr(&lfs3, &data,
|
lfs3_data_readbptr(&lfs3, &data,
|
||||||
&bptr) => 0;
|
&bptr) => 0;
|
||||||
printf("traversal: %d 0x%x block 0x%x.%x %d\n",
|
printf("traversal: %d 0x%x w%d block 0x%x.%x %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
bptr.data.u.disk.block,
|
bptr.data.u.disk.block,
|
||||||
bptr.data.u.disk.off,
|
bptr.data.u.disk.off,
|
||||||
lfs3_data_size(bptr.data));
|
lfs3_data_size(bptr.data));
|
||||||
@@ -2720,9 +2759,10 @@ code = '''
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// well this shouldn't happen
|
// well this shouldn't happen
|
||||||
printf("traversal: %d 0x%x\n",
|
printf("traversal: %d 0x%x w%d\n",
|
||||||
bid,
|
bid,
|
||||||
tag);
|
tag,
|
||||||
|
weight);
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2967,9 +3007,10 @@ code = '''
|
|||||||
|
|
||||||
lfs3_bid_t bid;
|
lfs3_bid_t bid;
|
||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
|
lfs3_bid_t weight;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
||||||
&bid, &tag, &data);
|
&bid, &tag, &weight, &data);
|
||||||
assert(!err || err == LFS3_ERR_NOENT);
|
assert(!err || err == LFS3_ERR_NOENT);
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
@@ -2977,15 +3018,17 @@ code = '''
|
|||||||
|
|
||||||
if (tag == LFS3_TAG_BRANCH) {
|
if (tag == LFS3_TAG_BRANCH) {
|
||||||
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
||||||
printf("traversal: %d 0x%x btree 0x%x.%x\n",
|
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
rbyd->blocks[0], rbyd->trunk);
|
rbyd->blocks[0], rbyd->trunk);
|
||||||
|
|
||||||
} else if (tag == LFS3_TAG_DATA) {
|
} else if (tag == LFS3_TAG_DATA) {
|
||||||
printf("traversal: %d 0x%x data %d\n",
|
printf("traversal: %d 0x%x w%d data %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
lfs3_data_size(data));
|
lfs3_data_size(data));
|
||||||
|
|
||||||
// keep track of how many fragments we've seen
|
// keep track of how many fragments we've seen
|
||||||
@@ -2995,9 +3038,10 @@ code = '''
|
|||||||
lfs3_bptr_t bptr;
|
lfs3_bptr_t bptr;
|
||||||
lfs3_data_readbptr(&lfs3, &data,
|
lfs3_data_readbptr(&lfs3, &data,
|
||||||
&bptr) => 0;
|
&bptr) => 0;
|
||||||
printf("traversal: %d 0x%x block 0x%x.%x %d\n",
|
printf("traversal: %d 0x%x w%d block 0x%x.%x %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
bptr.data.u.disk.block,
|
bptr.data.u.disk.block,
|
||||||
bptr.data.u.disk.off,
|
bptr.data.u.disk.off,
|
||||||
lfs3_data_size(bptr.data));
|
lfs3_data_size(bptr.data));
|
||||||
@@ -3008,9 +3052,10 @@ code = '''
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// well this shouldn't happen
|
// well this shouldn't happen
|
||||||
printf("traversal: %d 0x%x\n",
|
printf("traversal: %d 0x%x w%d\n",
|
||||||
bid,
|
bid,
|
||||||
tag);
|
tag,
|
||||||
|
weight);
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3133,9 +3178,10 @@ code = '''
|
|||||||
|
|
||||||
lfs3_bid_t bid;
|
lfs3_bid_t bid;
|
||||||
lfs3_tag_t tag;
|
lfs3_tag_t tag;
|
||||||
|
lfs3_bid_t weight;
|
||||||
lfs3_data_t data;
|
lfs3_data_t data;
|
||||||
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
int err = lfs3_bshrub_traverse(&lfs3, &file.b, &bt,
|
||||||
&bid, &tag, &data);
|
&bid, &tag, &weight, &data);
|
||||||
assert(!err || err == LFS3_ERR_NOENT);
|
assert(!err || err == LFS3_ERR_NOENT);
|
||||||
if (err == LFS3_ERR_NOENT) {
|
if (err == LFS3_ERR_NOENT) {
|
||||||
break;
|
break;
|
||||||
@@ -3143,15 +3189,17 @@ code = '''
|
|||||||
|
|
||||||
if (tag == LFS3_TAG_BRANCH) {
|
if (tag == LFS3_TAG_BRANCH) {
|
||||||
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
lfs3_rbyd_t *rbyd = (lfs3_rbyd_t*)data.u.buffer;
|
||||||
printf("traversal: %d 0x%x btree 0x%x.%x\n",
|
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
rbyd->blocks[0], rbyd->trunk);
|
rbyd->blocks[0], rbyd->trunk);
|
||||||
|
|
||||||
} else if (tag == LFS3_TAG_DATA) {
|
} else if (tag == LFS3_TAG_DATA) {
|
||||||
printf("traversal: %d 0x%x data %d\n",
|
printf("traversal: %d 0x%x w%d data %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
lfs3_data_size(data));
|
lfs3_data_size(data));
|
||||||
|
|
||||||
// if block crystallization is working we shouldn't be
|
// if block crystallization is working we shouldn't be
|
||||||
@@ -3162,9 +3210,10 @@ code = '''
|
|||||||
lfs3_bptr_t bptr;
|
lfs3_bptr_t bptr;
|
||||||
lfs3_data_readbptr(&lfs3, &data,
|
lfs3_data_readbptr(&lfs3, &data,
|
||||||
&bptr) => 0;
|
&bptr) => 0;
|
||||||
printf("traversal: %d 0x%x block 0x%x.%x %d\n",
|
printf("traversal: %d 0x%x w%d block 0x%x.%x %d\n",
|
||||||
bid,
|
bid,
|
||||||
tag,
|
tag,
|
||||||
|
weight,
|
||||||
bptr.data.u.disk.block,
|
bptr.data.u.disk.block,
|
||||||
bptr.data.u.disk.off,
|
bptr.data.u.disk.off,
|
||||||
lfs3_data_size(bptr.data));
|
lfs3_data_size(bptr.data));
|
||||||
@@ -3174,9 +3223,10 @@ code = '''
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// well this shouldn't happen
|
// well this shouldn't happen
|
||||||
printf("traversal: %d 0x%x\n",
|
printf("traversal: %d 0x%x w%d\n",
|
||||||
bid,
|
bid,
|
||||||
tag);
|
tag,
|
||||||
|
weight);
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user