Dropped *_hastrunk() functions
We can just rely on the truthiness of *_trunk() here.
This commit is contained in:
@@ -2180,12 +2180,8 @@ static inline lfs_size_t lfsr_rbyd_trunk(const lfsr_rbyd_t *rbyd) {
|
|||||||
return rbyd->trunk & ~LFSR_RBYD_ISSHRUB;
|
return rbyd->trunk & ~LFSR_RBYD_ISSHRUB;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool lfsr_rbyd_hastrunk(const lfsr_rbyd_t *rbyd) {
|
|
||||||
return lfsr_rbyd_trunk(rbyd) != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool lfsr_rbyd_isfetched(const lfsr_rbyd_t *rbyd) {
|
static inline bool lfsr_rbyd_isfetched(const lfsr_rbyd_t *rbyd) {
|
||||||
return !(lfsr_rbyd_hastrunk(rbyd) && rbyd->eoff == 0);
|
return !lfsr_rbyd_trunk(rbyd) || rbyd->eoff;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool lfsr_rbyd_parity(const lfsr_rbyd_t *rbyd) {
|
static inline bool lfsr_rbyd_parity(const lfsr_rbyd_t *rbyd) {
|
||||||
@@ -2390,7 +2386,7 @@ static int lfsr_rbyd_fetch(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// no valid commits?
|
// no valid commits?
|
||||||
if (!lfsr_rbyd_hastrunk(rbyd)) {
|
if (!lfsr_rbyd_trunk(rbyd)) {
|
||||||
return LFS_ERR_CORRUPT;
|
return LFS_ERR_CORRUPT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2480,7 +2476,7 @@ static int lfsr_rbyd_lookupnext(lfs_t *lfs, const lfsr_rbyd_t *rbyd,
|
|||||||
tag = lfs_max16(tag, 0x1);
|
tag = lfs_max16(tag, 0x1);
|
||||||
|
|
||||||
// out of bounds? no trunk yet?
|
// out of bounds? no trunk yet?
|
||||||
if (rid >= (lfsr_srid_t)rbyd->weight || !lfsr_rbyd_hastrunk(rbyd)) {
|
if (rid >= (lfsr_srid_t)rbyd->weight || !lfsr_rbyd_trunk(rbyd)) {
|
||||||
return LFS_ERR_NOENT;
|
return LFS_ERR_NOENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4423,15 +4419,15 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree,
|
|||||||
lfsr_srid_t pid = 0;
|
lfsr_srid_t pid = 0;
|
||||||
// are we root?
|
// are we root?
|
||||||
if (rbyd.blocks[0] == btree->blocks[0]
|
if (rbyd.blocks[0] == btree->blocks[0]
|
||||||
|| !lfsr_rbyd_hastrunk(&rbyd)) {
|
|| !lfsr_rbyd_trunk(&rbyd)) {
|
||||||
// new root? shrub root? yield the final root commit to
|
// new root? shrub root? yield the final root commit to
|
||||||
// higher-level btree/bshrub logic
|
// higher-level btree/bshrub logic
|
||||||
if (!lfsr_rbyd_hastrunk(&rbyd)
|
if (!lfsr_rbyd_trunk(&rbyd)
|
||||||
|| lfsr_rbyd_isshrub(btree)) {
|
|| lfsr_rbyd_isshrub(btree)) {
|
||||||
*bid_ = rid;
|
*bid_ = rid;
|
||||||
*attrs_ = attrs;
|
*attrs_ = attrs;
|
||||||
*attr_count_ = attr_count;
|
*attr_count_ = attr_count;
|
||||||
return (!lfsr_rbyd_hastrunk(&rbyd)) ? LFS_ERR_RANGE : 0;
|
return (!lfsr_rbyd_trunk(&rbyd)) ? LFS_ERR_RANGE : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// mark btree as unerased in case of failure, our btree rbyd and
|
// mark btree as unerased in case of failure, our btree rbyd and
|
||||||
@@ -4489,7 +4485,7 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree,
|
|||||||
|
|
||||||
finalize:;
|
finalize:;
|
||||||
// done?
|
// done?
|
||||||
if (!lfsr_rbyd_hastrunk(&parent)) {
|
if (!lfsr_rbyd_trunk(&parent)) {
|
||||||
LFS_ASSERT(bid == 0);
|
LFS_ASSERT(bid == 0);
|
||||||
*btree = rbyd_;
|
*btree = rbyd_;
|
||||||
*attr_count_ = 0;
|
*attr_count_ = 0;
|
||||||
@@ -4550,7 +4546,7 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree,
|
|||||||
lfsr_rbyd_t sibling;
|
lfsr_rbyd_t sibling;
|
||||||
if ((lfs_size_t)estimate <= lfs->cfg->block_size/4
|
if ((lfs_size_t)estimate <= lfs->cfg->block_size/4
|
||||||
// no parent? can't merge
|
// no parent? can't merge
|
||||||
&& lfsr_rbyd_hastrunk(&parent)) {
|
&& lfsr_rbyd_trunk(&parent)) {
|
||||||
// try the right sibling
|
// try the right sibling
|
||||||
if (pid+1 < (lfsr_srid_t)parent.weight) {
|
if (pid+1 < (lfsr_srid_t)parent.weight) {
|
||||||
// try looking up the sibling
|
// try looking up the sibling
|
||||||
@@ -4787,7 +4783,7 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree,
|
|||||||
attr_count = 0;
|
attr_count = 0;
|
||||||
buf_size = 0;
|
buf_size = 0;
|
||||||
// new root?
|
// new root?
|
||||||
if (!lfsr_rbyd_hastrunk(&parent)) {
|
if (!lfsr_rbyd_trunk(&parent)) {
|
||||||
attrs__[attr_count++] = LFSR_ATTR(
|
attrs__[attr_count++] = LFSR_ATTR(
|
||||||
LFSR_TAG_BRANCH, +rbyd_.weight,
|
LFSR_TAG_BRANCH, +rbyd_.weight,
|
||||||
lfsr_data_frombranch(&rbyd_, &buf__[buf_size]));
|
lfsr_data_frombranch(&rbyd_, &buf__[buf_size]));
|
||||||
@@ -4870,7 +4866,7 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree,
|
|||||||
|
|
||||||
// we must have a parent at this point, but is our parent the root
|
// we must have a parent at this point, but is our parent the root
|
||||||
// and is the root degenerate?
|
// and is the root degenerate?
|
||||||
LFS_ASSERT(lfsr_rbyd_hastrunk(&parent));
|
LFS_ASSERT(lfsr_rbyd_trunk(&parent));
|
||||||
if (rbyd.weight+sibling.weight == btree->weight) {
|
if (rbyd.weight+sibling.weight == btree->weight) {
|
||||||
// collapse the root, decreasing the height of the tree
|
// collapse the root, decreasing the height of the tree
|
||||||
*btree = rbyd_;
|
*btree = rbyd_;
|
||||||
@@ -4936,7 +4932,7 @@ static int lfsr_btree_commit(lfs_t *lfs, lfsr_btree_t *btree, lfsr_bid_t bid,
|
|||||||
*btree = rbyd;
|
*btree = rbyd;
|
||||||
}
|
}
|
||||||
|
|
||||||
LFS_ASSERT(lfsr_rbyd_hastrunk(btree));
|
LFS_ASSERT(lfsr_rbyd_trunk(btree));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5229,10 +5225,6 @@ static inline lfs_size_t lfsr_shrub_trunk(const lfsr_shrub_t *shrub) {
|
|||||||
return lfsr_rbyd_trunk((const lfsr_rbyd_t*)shrub);
|
return lfsr_rbyd_trunk((const lfsr_rbyd_t*)shrub);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool lfsr_shrub_hastrunk(const lfsr_shrub_t *shrub) {
|
|
||||||
return lfsr_rbyd_trunk((const lfsr_rbyd_t*)shrub) != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline int lfsr_shrub_cmp(
|
static inline int lfsr_shrub_cmp(
|
||||||
const lfsr_shrub_t *a,
|
const lfsr_shrub_t *a,
|
||||||
const lfsr_shrub_t *b) {
|
const lfsr_shrub_t *b) {
|
||||||
@@ -5296,7 +5288,7 @@ static int lfsr_data_readshrub(lfs_t *lfs, lfsr_data_t *data,
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
// shrub trunks should never be null
|
// shrub trunks should never be null
|
||||||
LFS_ASSERT(lfsr_shrub_hastrunk(shrub));
|
LFS_ASSERT(lfsr_shrub_trunk(shrub));
|
||||||
|
|
||||||
// set the shrub bit in our trunk
|
// set the shrub bit in our trunk
|
||||||
shrub->trunk |= LFSR_RBYD_ISSHRUB;
|
shrub->trunk |= LFSR_RBYD_ISSHRUB;
|
||||||
@@ -10277,7 +10269,7 @@ static int lfsr_bshrub_commit(lfs_t *lfs, lfsr_file_t *file, lfsr_bid_t bid,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
LFS_ASSERT(lfsr_shrub_hastrunk(&file->bshrub.u.bshrub));
|
LFS_ASSERT(lfsr_shrub_trunk(&file->bshrub.u.bshrub));
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
evict:;
|
evict:;
|
||||||
|
|||||||
Reference in New Issue
Block a user