tag-returning: Adopted tag-returns in mtree traversals
- lfs3_mtree_traverse_
- lfs3_mtree_traverse
- lfs3_mtree_gc
I like this one if only for the reduced API noise. All of these layers
need to inspect the tag to know what to do, moving the tag to the return
position means less mucking around with points in our core traversal
logic.
Shaves off a bit more code:
code stack ctx
before: 36348 2336 656
after: 36260 (-0.2%) 2336 (+0.0%) 656 (+0.0%)
This commit is contained in:
+40
-40
@@ -3674,12 +3674,12 @@ code = '''
|
||||
// a bit hacky, but this catches infinite loops
|
||||
assert(i < 2*BLOCK_COUNT);
|
||||
|
||||
lfs3_tag_t tag;
|
||||
lfs3_stag_t tag;
|
||||
lfs3_bptr_t bptr;
|
||||
int err = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&tag, &bptr);
|
||||
assert(!err || err == LFS3_ERR_NOENT);
|
||||
if (err == LFS3_ERR_NOENT) {
|
||||
tag = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&bptr);
|
||||
assert(tag >= 0 || tag == LFS3_ERR_NOENT);
|
||||
if (tag == LFS3_ERR_NOENT) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3796,12 +3796,12 @@ code = '''
|
||||
// a bit hacky, but this catches infinite loops
|
||||
assert(i < 2*BLOCK_COUNT);
|
||||
|
||||
lfs3_tag_t tag;
|
||||
lfs3_stag_t tag;
|
||||
lfs3_bptr_t bptr;
|
||||
int err = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&tag, &bptr);
|
||||
assert(!err || err == LFS3_ERR_NOENT);
|
||||
if (err == LFS3_ERR_NOENT) {
|
||||
tag = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&bptr);
|
||||
assert(tag >= 0 || tag == LFS3_ERR_NOENT);
|
||||
if (tag == LFS3_ERR_NOENT) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3944,12 +3944,12 @@ code = '''
|
||||
// a bit hacky, but this catches infinite loops
|
||||
assert(i < 2*BLOCK_COUNT);
|
||||
|
||||
lfs3_tag_t tag;
|
||||
lfs3_stag_t tag;
|
||||
lfs3_bptr_t bptr;
|
||||
int err = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&tag, &bptr);
|
||||
assert(!err || err == LFS3_ERR_NOENT);
|
||||
if (err == LFS3_ERR_NOENT) {
|
||||
tag = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&bptr);
|
||||
assert(tag >= 0 || tag == LFS3_ERR_NOENT);
|
||||
if (tag == LFS3_ERR_NOENT) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -4115,12 +4115,12 @@ code = '''
|
||||
// a bit hacky, but this catches infinite loops
|
||||
assert(i < 2*BLOCK_COUNT);
|
||||
|
||||
lfs3_tag_t tag;
|
||||
lfs3_stag_t tag;
|
||||
lfs3_bptr_t bptr;
|
||||
int err = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&tag, &bptr);
|
||||
assert(!err || err == LFS3_ERR_NOENT);
|
||||
if (err == LFS3_ERR_NOENT) {
|
||||
tag = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&bptr);
|
||||
assert(tag >= 0 || tag == LFS3_ERR_NOENT);
|
||||
if (tag == LFS3_ERR_NOENT) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -4266,12 +4266,12 @@ code = '''
|
||||
// a bit hacky, but this catches infinite loops
|
||||
assert(i < 2*BLOCK_COUNT);
|
||||
|
||||
lfs3_tag_t tag;
|
||||
lfs3_stag_t tag;
|
||||
lfs3_bptr_t bptr;
|
||||
int err = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&tag, &bptr);
|
||||
assert(!err || err == LFS3_ERR_NOENT);
|
||||
if (err == LFS3_ERR_NOENT) {
|
||||
tag = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&bptr);
|
||||
assert(tag >= 0 || tag == LFS3_ERR_NOENT);
|
||||
if (tag == LFS3_ERR_NOENT) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -4392,12 +4392,12 @@ code = '''
|
||||
// a bit hacky, but this catches infinite loops
|
||||
assert(i < 2*BLOCK_COUNT);
|
||||
|
||||
lfs3_tag_t tag;
|
||||
lfs3_stag_t tag;
|
||||
lfs3_bptr_t bptr;
|
||||
int err = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&tag, &bptr);
|
||||
assert(!err || err == LFS3_ERR_NOENT);
|
||||
if (err == LFS3_ERR_NOENT) {
|
||||
tag = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&bptr);
|
||||
assert(tag >= 0 || tag == LFS3_ERR_NOENT);
|
||||
if (tag == LFS3_ERR_NOENT) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -4562,12 +4562,12 @@ code = '''
|
||||
// a bit hacky, but this catches infinite loops
|
||||
assert(i < 2*BLOCK_COUNT);
|
||||
|
||||
lfs3_tag_t tag;
|
||||
lfs3_stag_t tag;
|
||||
lfs3_bptr_t bptr;
|
||||
int err = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&tag, &bptr);
|
||||
assert(!err || err == LFS3_ERR_NOENT);
|
||||
if (err == LFS3_ERR_NOENT) {
|
||||
tag = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&bptr);
|
||||
assert(tag >= 0 || tag == LFS3_ERR_NOENT);
|
||||
if (tag == LFS3_ERR_NOENT) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -4693,12 +4693,12 @@ code = '''
|
||||
// assert that we detect the cycle in a reasonable number of iterations
|
||||
assert(i < 2*BLOCK_COUNT);
|
||||
|
||||
lfs3_tag_t tag;
|
||||
lfs3_stag_t tag;
|
||||
lfs3_bptr_t bptr;
|
||||
int err = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&tag, &bptr);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
tag = lfs3_mtree_traverse(&lfs3, &t,
|
||||
&bptr);
|
||||
assert(tag >= 0 || tag == LFS3_ERR_CORRUPT);
|
||||
if (tag == LFS3_ERR_CORRUPT) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user