From dadfb27a6b454e5664064ed278512263447d289f Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Sun, 19 May 2024 20:03:45 -0500 Subject: [PATCH] Added lfsr_attr_nextrid to help with attr-list iteration Saw this was a common pattern that could be made a bit easier. No code/stack changes. --- lfs.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/lfs.c b/lfs.c index 313bc29c..b94a79fd 100644 --- a/lfs.c +++ b/lfs.c @@ -1563,6 +1563,15 @@ static inline bool lfsr_attr_isinsert(lfsr_attr_t attr) { return !lfsr_tag_isgrow(attr.tag) && attr.weight > 0; } +static inline lfsr_srid_t lfsr_attr_nextrid(lfsr_attr_t attr, + lfsr_srid_t rid) { + if (lfsr_attr_isinsert(attr)) { + return rid + attr.weight-1; + } else { + return rid + attr.weight; + } +} + static inline lfs_size_t lfsr_attr_size(lfsr_attr_t attr) { return lfsr_cat_size(attr.cat, attr.count); } @@ -3434,10 +3443,7 @@ static int lfsr_rbyd_appendattrs(lfs_t *lfs, lfsr_rbyd_t *rbyd, } // adjust rid - rid += attrs[i].weight; - if (lfsr_attr_isinsert(attrs[i])) { - rid -= 1; - } + rid = lfsr_attr_nextrid(attrs[i], rid); } return 0; @@ -6147,10 +6153,7 @@ static int lfsr_mdir_commit__(lfs_t *lfs, lfsr_mdir_t *mdir, } // adjust rid - rid += attrs[i].weight; - if (lfsr_attr_isinsert(attrs[i])) { - rid -= 1; - } + rid = lfsr_attr_nextrid(attrs[i], rid); } } @@ -6620,10 +6623,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, } // adjust mid - mid_ += attrs[i].weight; - if (lfsr_attr_isinsert(attrs[i])) { - mid_ -= 1; - } + mid_ = lfsr_attr_nextrid(attrs[i], mid_); } // setup any pending gdeltas @@ -7074,10 +7074,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, } // adjust mid - mid_ += attrs[i].weight; - if (lfsr_attr_isinsert(attrs[i])) { - mid_ -= 1; - } + mid_ = lfsr_attr_nextrid(attrs[i], mid_); } // update any staged bsprouts/bshrubs