From 01f2d613bd798400a9346f3da69d01e74b38c591 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Thu, 30 Jan 2025 03:35:07 -0600 Subject: [PATCH] Simplified lfsr_mtree_t now that we don't need to represent msprouts We had to be a bit clever with our lfsr_mtree_t representation to support msprouts. Now that we don't support msprouts, we can simplify this and drop the lfsr_mtree_t type completely! which is nice for both code cost and readability. Saves a bit more code: code stack ctx before: 38344 2624 640 after: 38284 (-0.2%) 2624 (+0.0%) 640 (+0.0%) Which increases the total savings of dropping msprouts: code stack ctx yes msprouts: 38508 2624 640 no msprouts: 38284 (-0.6%) 2624 (+0.0%) 640 (+0.0%) --- lfs.c | 103 +++++++++----------------------- lfs.h | 15 +---- tests/test_mtree.toml | 122 +++++++++++++++++++------------------- tests/test_traversal.toml | 84 +++++++++++++------------- 4 files changed, 133 insertions(+), 191 deletions(-) diff --git a/lfs.c b/lfs.c index 13e4e429..d7fdab3a 100644 --- a/lfs.c +++ b/lfs.c @@ -4756,6 +4756,7 @@ static lfs_scmp_t lfsr_rbyd_namelookup(lfs_t *lfs, const lfsr_rbyd_t *rbyd, // create an empty btree static void lfsr_btree_init(lfsr_btree_t *btree) { btree->weight = 0; + btree->blocks[0] = -1; btree->trunk = 0; } @@ -7439,55 +7440,9 @@ static int lfsr_mdir_suplookup(lfs_t *lfs, const lfsr_mdir_t *mdir, /// Metadata-tree things /// -// the mtree is the core tree of mdirs in littlefs - -#define LFSR_MTREE_ISMPTR 0x80000000 - -// create an empty mtree -static void lfsr_mtree_init(lfsr_mtree_t *mtree) { - mtree->u.weight = LFSR_MTREE_ISMPTR | 0; -} - -// create an mtree with a single mdir -static void lfsr_mtree_frommptr(lfsr_mtree_t *mtree, - const lfs_block_t mptr[static 2], - lfsr_mid_t weight) { - mtree->u.mptr.weight = LFSR_MTREE_ISMPTR | weight; - mtree->u.mptr.blocks[0] = mptr[0]; - mtree->u.mptr.blocks[1] = mptr[1]; -} - -static inline bool lfsr_mtree_isnull(const lfsr_mtree_t *mtree) { - return mtree->u.weight == (LFSR_MTREE_ISMPTR | 0); -} - -static inline bool lfsr_mtree_ismptr(const lfsr_mtree_t *mtree) { - return mtree->u.weight & LFSR_MTREE_ISMPTR; -} - -static inline bool lfsr_mtree_isbtree(const lfsr_mtree_t *mtree) { - return !(mtree->u.weight & LFSR_MTREE_ISMPTR); -} - -static inline lfsr_mid_t lfsr_mtree_weight_(const lfsr_mtree_t *mtree) { - return mtree->u.weight & ~LFSR_MTREE_ISMPTR; -} - -static inline int lfsr_mtree_cmp( - const lfsr_mtree_t *a, - const lfsr_mtree_t *b) { - if (a->u.weight != b->u.weight) { - return a->u.weight - b->u.weight; - } else if (lfsr_mtree_isnull(a)) { - return 0; - } else { - return lfsr_btree_cmp(&a->u.btree, &b->u.btree); - } -} - static inline lfsr_mid_t lfsr_mtree_weight(lfs_t *lfs) { return lfs_max( - lfsr_mtree_weight_(&lfs->mtree), + lfs->mtree.weight, 1 << lfs->mdir_bits); } @@ -7502,7 +7457,7 @@ static int lfsr_mtree_lookup(lfs_t *lfs, lfsr_smid_t mid, } // looking up mroot? - if (lfsr_mtree_isnull(&lfs->mtree)) { + if (lfs->mtree.weight == 0) { mdir_->mid = mid; lfsr_mdir_sync(mdir_, &lfs->mroot); return 0; @@ -7512,7 +7467,7 @@ static int lfsr_mtree_lookup(lfs_t *lfs, lfsr_smid_t mid, lfsr_bid_t bid; lfsr_tag_t tag; lfsr_data_t data; - int err = lfsr_btree_lookupnext(lfs, &lfs->mtree.u.btree, mid, + int err = lfsr_btree_lookupnext(lfs, &lfs->mtree, mid, &bid, &tag, NULL, &data); if (err) { LFS_ASSERT(err != LFS_ERR_NOENT); @@ -8512,13 +8467,13 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, } // handle possible mtree updates, this gets a bit messy - lfsr_mtree_t mtree_ = lfs->mtree; + lfsr_btree_t mtree_ = lfs->mtree; lfsr_smid_t mdelta = 0; // need to split? if (err == LFS_ERR_RANGE) { // this should not happen unless we can't fit our mroot's metadata LFS_ASSERT(lfsr_mdir_cmp(mdir, &lfs->mroot) != 0 - || lfsr_mtree_isnull(&lfs->mtree)); + || lfs->mtree.weight == 0); // if we're not the mroot, we need to consume the gstate so // we don't lose any info during the split @@ -8634,11 +8589,11 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, } // new mtree? - if (lfsr_mtree_weight_(&lfs->mtree) == 0) { - lfsr_btree_init(&mtree_.u.btree); + if (lfs->mtree.weight == 0) { + lfsr_btree_init(&mtree_); uint8_t mdir_buf[2*LFSR_MPTR_DSIZE]; - err = lfsr_btree_commit(lfs, &mtree_.u.btree, + err = lfsr_btree_commit(lfs, &mtree_, 0, LFSR_RATS( LFSR_RAT( LFSR_TAG_MDIR, +(1 << lfs->mdir_bits), @@ -8660,10 +8615,10 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, // update our mtree } else { // mark as unerased in case of failure - lfs->mtree.u.btree.eoff = -1; + lfs->mtree.eoff = -1; uint8_t mdir_buf[2*LFSR_MPTR_DSIZE]; - err = lfsr_btree_commit(lfs, &mtree_.u.btree, + err = lfsr_btree_commit(lfs, &mtree_, lfsr_mid_bid(lfs, mdir->mid), LFSR_RATS( LFSR_RAT( LFSR_TAG_MDIR, 0, @@ -8701,13 +8656,13 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, mdelta = -(1 << lfs->mdir_bits); // how can we drop if we have no mtree? - LFS_ASSERT(lfsr_mtree_weight_(&lfs->mtree) != 0); + LFS_ASSERT(lfs->mtree.weight != 0); // mark as unerased in case of failure - lfs->mtree.u.btree.eoff = -1; + lfs->mtree.eoff = -1; // update our mtree - err = lfsr_btree_commit(lfs, &mtree_.u.btree, + err = lfsr_btree_commit(lfs, &mtree_, lfsr_mid_bid(lfs, mdir->mid), LFSR_RATS( LFSR_RAT( LFSR_TAG_RM, -(1 << lfs->mdir_bits), @@ -8727,11 +8682,11 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, relocated:; // new mtree? - if (lfsr_mtree_weight_(&lfs->mtree) == 0) { - lfsr_btree_init(&mtree_.u.btree); + if (lfs->mtree.weight == 0) { + lfsr_btree_init(&mtree_); uint8_t mdir_buf[LFSR_MPTR_DSIZE]; - err = lfsr_btree_commit(lfs, &mtree_.u.btree, + err = lfsr_btree_commit(lfs, &mtree_, 0, LFSR_RATS( LFSR_RAT( LFSR_TAG_MDIR, +(1 << lfs->mdir_bits), @@ -8745,10 +8700,10 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, // update our mtree } else { // mark as unerased in case of failure - lfs->mtree.u.btree.eoff = -1; + lfs->mtree.eoff = -1; uint8_t mdir_buf[LFSR_MPTR_DSIZE]; - err = lfsr_btree_commit(lfs, &mtree_.u.btree, + err = lfsr_btree_commit(lfs, &mtree_, lfsr_mid_bid(lfs, mdir->mid), LFSR_RATS( LFSR_RAT( LFSR_TAG_MDIR, 0, @@ -8777,9 +8732,9 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, } // need to update mtree? - if (lfsr_mtree_cmp(&mtree_, &lfs->mtree) != 0) { + if (lfsr_btree_cmp(&mtree_, &lfs->mtree) != 0) { // mtree should never go to zero since we always have a root bookmark - LFS_ASSERT(lfsr_mtree_weight_(&mtree_) > 0); + LFS_ASSERT(mtree_.weight > 0); // make sure mtree/mroot changes are on-disk before committing // metadata @@ -8810,7 +8765,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, -1, LFSR_RATS( LFSR_RAT( LFSR_TAG_SUB | LFSR_TAG_MTREE, 0, - LFSR_DATA_BTREE(&mtree_.u.btree, mtree_buf)), + LFSR_DATA_BTREE(&mtree_, mtree_buf)), // were we committing to the mroot? include any -1 rats (mdir->mid == -1) ? LFSR_RAT_RATS( @@ -8985,7 +8940,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, // if mroot/mtree changed, clobber any mroot/mtree traversals if (lfsr_mdir_cmp(&mroot_, &lfs->mroot) != 0 - || lfsr_mtree_cmp(&mtree_, &lfs->mtree) != 0) { + || lfsr_btree_cmp(&mtree_, &lfs->mtree) != 0) { for (lfsr_omdir_t *o = lfs->omdirs; o; o = o->next) { if (lfsr_o_type(o->flags) == LFS_TYPE_TRAVERSAL && o->mdir.mid == -1 @@ -9126,7 +9081,7 @@ static int lfsr_mtree_namelookup(lfs_t *lfs, lfsr_mdir_t *mdir_, lfsr_tag_t *tag_, lfsr_data_t *data_) { // do we only have mroot? lfsr_mdir_t mdir; - if (lfsr_mtree_isnull(&lfs->mtree)) { + if (lfs->mtree.weight == 0) { mdir = lfs->mroot; // treat inlined mdir as mid=0 mdir.mid = 0; @@ -9137,7 +9092,7 @@ static int lfsr_mtree_namelookup(lfs_t *lfs, lfsr_tag_t tag; lfsr_bid_t weight; lfsr_data_t data; - lfs_scmp_t cmp = lfsr_btree_namelookup(lfs, &lfs->mtree.u.btree, + lfs_scmp_t cmp = lfsr_btree_namelookup(lfs, &lfs->mtree, did, name, name_len, &bid, &tag, &weight, &data); if (cmp < 0) { @@ -14054,7 +14009,7 @@ static int lfsr_mountinited(lfs_t *lfs) { // default to no mtree, this is allowed and implies all files are inlined // in the mroot - lfsr_mtree_init(&lfs->mtree); + lfsr_btree_init(&lfs->mtree); // zero gcksum/gdeltas, we'll read these from our mdirs lfs->gcksum = 0; @@ -14137,8 +14092,8 @@ static int lfsr_mountinited(lfs_t *lfs) { } else if (tag == LFSR_TAG_BRANCH) { lfsr_rbyd_t *rbyd = (lfsr_rbyd_t*)bptr.data.u.buffer; // found the root of the mtree? keep track of this - if (lfsr_mtree_isnull(&lfs->mtree)) { - lfs->mtree.u.btree = *rbyd; + if (lfs->mtree.weight == 0) { + lfs->mtree = *rbyd; } } else { @@ -14299,7 +14254,7 @@ int lfsr_mount(lfs_t *lfs, uint32_t flags, lfs->mroot.rbyd.blocks[0], lfs->mroot.rbyd.blocks[1], lfsr_rbyd_trunk(&lfs->mroot.rbyd), - lfsr_mtree_weight_(&lfs->mtree) >> lfs->mdir_bits, + lfs->mtree.weight >> lfs->mdir_bits, 1 << lfs->mdir_bits, lfs->gcksum); diff --git a/lfs.h b/lfs.h index f6c9881a..f312b670 100644 --- a/lfs.h +++ b/lfs.h @@ -803,19 +803,6 @@ typedef struct lfsr_traversal { // lfs_block_t pair[2]; //} lfs_gstate_t; -typedef struct lfsr_mtree { - union { - // the sign bit indicates if this is an inlined mdir/direct mdir - // pointer or a full mtree - lfsr_mid_t weight; - struct { - lfsr_mid_t weight; - lfs_block_t blocks[2]; - } mptr; - lfsr_btree_t btree; - } u; -} lfsr_mtree_t; - // grm encoding: // .---. mode: 1 leb128 1 byte // |mod| mids: 2 leb128s <=2x5 bytes @@ -855,7 +842,7 @@ typedef struct lfs { lfsr_omdir_t *omdirs; lfsr_mdir_t mroot; - lfsr_mtree_t mtree; + lfsr_btree_t mtree; struct { lfs_block_t block; diff --git a/tests/test_mtree.toml b/tests/test_mtree.toml index 13f4fa35..1c18c19c 100644 --- a/tests/test_mtree.toml +++ b/tests/test_mtree.toml @@ -187,7 +187,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(3), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -211,7 +211,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -268,7 +268,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(1), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -294,7 +294,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -353,7 +353,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(1), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -371,7 +371,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(2), 0, LFSR_DATA_BUF("e", 1)))) => 0; // assert mdir was split correctly - assert(lfsr_mtree_weight_(&lfs.mtree) == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -407,7 +407,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was split correctly - assert(lfsr_mtree_weight_(&lfs.mtree) == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -664,7 +664,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(1), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -677,7 +677,7 @@ code = ''' assert(mdir.rbyd.weight == 0); // assert mdir was dropped - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -697,7 +697,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was dropped - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -750,7 +750,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(1), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -765,7 +765,7 @@ code = ''' assert(mdir.rbyd.weight == 0); // assert mdir was dropped - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -785,7 +785,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was dropped - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -844,7 +844,7 @@ code = ''' assert(mdir.rbyd.weight == 2); // assert split/drop worked out - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -860,7 +860,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was dropped - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -909,7 +909,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(1), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -932,7 +932,7 @@ code = ''' assert(mdir.rbyd.weight == 1); // assert split/drop worked out - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -958,7 +958,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert split/drop worked out - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1017,7 +1017,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(1), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1040,7 +1040,7 @@ code = ''' assert(mdir.rbyd.weight == 1); // assert split/drop worked out - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1066,7 +1066,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert split/drop worked out - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1253,7 +1253,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(3), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1270,7 +1270,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); // assert mdirs were unininlined - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1304,7 +1304,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1373,7 +1373,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(1), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1392,7 +1392,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1428,7 +1428,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1499,7 +1499,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(1), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1518,7 +1518,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1554,7 +1554,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1921,7 +1921,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(1), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1945,7 +1945,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1981,7 +1981,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2052,7 +2052,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(1), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2081,7 +2081,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert mdir was split correctly - assert(lfsr_mtree_weight_(&lfs.mtree) == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2121,7 +2121,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was split correctly - assert(lfsr_mtree_weight_(&lfs.mtree) == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2196,7 +2196,7 @@ code = ''' LFSR_RAT(LFSR_TAG_ATTR(1), 0, LFSR_DATA_BUF("c", 1)))) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2220,7 +2220,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert mdir was dropped - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2240,7 +2240,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was dropped - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2297,7 +2297,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert mdirs were unininlined - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2321,7 +2321,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2388,7 +2388,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2414,7 +2414,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2809,7 +2809,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, NULL, 0) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2894,7 +2894,7 @@ code = ''' lfsr_mdir_commit(&lfs, &mdir, NULL, 0) => 0; // assert mdir was split correctly - assert(lfsr_mtree_weight_(&lfs.mtree) == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3025,7 +3025,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, NULL, 0) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3114,7 +3114,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, NULL, 0) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3213,7 +3213,7 @@ code = ''' lfsr_mdir_commit(&lfs, &mdir, NULL, 0) => 0; // assert mdir was split correctly - assert(lfsr_mtree_weight_(&lfs.mtree) == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3230,7 +3230,7 @@ code = ''' lfsr_mdir_commit(&lfs, &mdir, NULL, 0) => 0; // assert mdir was split correctly - assert(lfsr_mtree_weight_(&lfs.mtree) == (4 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (4 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3315,7 +3315,7 @@ code = ''' lfsr_mdir_commit(&lfs, &mdir, NULL, 0) => 0; // assert mdir was split correctly - assert(lfsr_mtree_weight_(&lfs.mtree) == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3325,7 +3325,7 @@ code = ''' assert(mdir.rbyd.weight == 0); // assert mdir was dropped correctly - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3482,7 +3482,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, NULL, 0) => 0; // assert mdirs were unininlined - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3548,7 +3548,7 @@ code = ''' // and the tree should still work // assert mdirs were unininlined - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3568,7 +3568,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined - assert(lfsr_mtree_weight_(&lfs.mtree) == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3621,7 +3621,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, NULL, 0) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3687,7 +3687,7 @@ code = ''' // and the tree should still work // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3709,7 +3709,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3764,7 +3764,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, NULL, 0) => 0; // assert mdirs were unininlined and split - assert(lfsr_mtree_weight_(&lfs.mtree) == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3781,7 +3781,7 @@ code = ''' lfsr_mdir_commit(&lfs, &mdir, NULL, 0) => 0; // assert mdir was split correctly - assert(lfsr_mtree_weight_(&lfs.mtree) == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3847,7 +3847,7 @@ code = ''' // and the tree should still work // assert mdir was split correctly - assert(lfsr_mtree_weight_(&lfs.mtree) == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3875,7 +3875,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was split correctly - assert(lfsr_mtree_weight_(&lfs.mtree) == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); diff --git a/tests/test_traversal.toml b/tests/test_traversal.toml index 5c1d6479..f636152d 100644 --- a/tests/test_traversal.toml +++ b/tests/test_traversal.toml @@ -3400,7 +3400,7 @@ code = ''' // create enough files for mroot to split lfs_size_t i = 0; - while (lfs.mtree.u.weight == 0x80000000) { + while (lfs.mtree.weight == 0) { char name[256]; sprintf(name, "uloborus%03x", i); lfsr_file_open(&lfs, &file, name, @@ -3519,7 +3519,7 @@ code = ''' // create enough files for mroot to split lfs_size_t i = 0; - while (lfs.mtree.u.weight == 0x80000000) { + while (lfs.mtree.weight == 0) { char name[256]; sprintf(name, "uloborus%03x", i); lfsr_file_open(&lfs, &file, name, @@ -3646,7 +3646,7 @@ code = ''' // create enough files for mroot to split lfs_size_t i = 0; - while (lfs.mtree.u.weight == 0x80000000) { + while (lfs.mtree.weight == 0) { char name[256]; sprintf(name, "uloborus%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4170,7 +4170,7 @@ code = ''' // create enough files for mroot to split twice lfs_size_t i = 0; - while (lfs.mtree.u.weight == 0x80000000) { + while (lfs.mtree.weight == 0) { char name[256]; sprintf(name, "tarantula%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4180,8 +4180,8 @@ code = ''' } i = 0; - lfs_size_t orig = lfs.mtree.u.weight; - while (lfs.mtree.u.weight == orig) { + lfs_size_t orig = lfs.mtree.weight; + while (lfs.mtree.weight == orig) { char name[256]; sprintf(name, "xnotata%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4205,8 +4205,8 @@ code = ''' // create enough files for mdir to split again i = 0; - orig = lfs.mtree.u.weight; - while (lfs.mtree.u.weight == orig) { + orig = lfs.mtree.weight; + while (lfs.mtree.weight == orig) { char name[256]; sprintf(name, "vulsor%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4345,7 +4345,7 @@ code = ''' // create enough files for mroot to split twice lfs_size_t i = 0; - while (lfs.mtree.u.weight == 0x80000000) { + while (lfs.mtree.weight == 0) { char name[256]; sprintf(name, "tarantula%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4355,8 +4355,8 @@ code = ''' } i = 0; - lfs_size_t orig = lfs.mtree.u.weight; - while (lfs.mtree.u.weight == orig) { + lfs_size_t orig = lfs.mtree.weight; + while (lfs.mtree.weight == orig) { char name[256]; sprintf(name, "xnotata%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4404,8 +4404,8 @@ code = ''' // create enough files for mdir to split again i = 0; - orig = lfs.mtree.u.weight; - while (lfs.mtree.u.weight == orig) { + orig = lfs.mtree.weight; + while (lfs.mtree.weight == orig) { char name[256]; sprintf(name, "vulsor%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4527,7 +4527,7 @@ code = ''' // create enough files for mroot to split twice lfs_size_t i = 0; - while (lfs.mtree.u.weight == 0x80000000) { + while (lfs.mtree.weight == 0) { char name[256]; sprintf(name, "tarantula%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4537,8 +4537,8 @@ code = ''' } i = 0; - lfs_size_t orig = lfs.mtree.u.weight; - while (lfs.mtree.u.weight == orig) { + lfs_size_t orig = lfs.mtree.weight; + while (lfs.mtree.weight == orig) { char name[256]; sprintf(name, "xnotata%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4591,8 +4591,8 @@ code = ''' // create enough files for mdir to split again i = 0; - orig = lfs.mtree.u.weight; - while (lfs.mtree.u.weight == orig) { + orig = lfs.mtree.weight; + while (lfs.mtree.weight == orig) { char name[256]; sprintf(name, "vulsor%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4703,7 +4703,7 @@ code = ''' // create enough files for mroot to split twice lfs_size_t i = 0; - while (lfs.mtree.u.weight == 0x80000000) { + while (lfs.mtree.weight == 0) { char name[256]; sprintf(name, "tarantula%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4713,8 +4713,8 @@ code = ''' } i = 0; - lfs_size_t orig = lfs.mtree.u.weight; - while (lfs.mtree.u.weight == orig) { + lfs_size_t orig = lfs.mtree.weight; + while (lfs.mtree.weight == orig) { char name[256]; sprintf(name, "xnotata%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4876,7 +4876,7 @@ code = ''' // create enough files for mroot to split twice lfs_size_t i = 0; - while (lfs.mtree.u.weight == 0x80000000) { + while (lfs.mtree.weight == 0) { char name[256]; sprintf(name, "tarantula%03x", i); lfsr_file_open(&lfs, &file, name, @@ -4886,8 +4886,8 @@ code = ''' } i = 0; - lfs_size_t orig = lfs.mtree.u.weight; - while (lfs.mtree.u.weight == orig) { + lfs_size_t orig = lfs.mtree.weight; + while (lfs.mtree.weight == orig) { char name[256]; sprintf(name, "xnotata%03x", i); lfsr_file_open(&lfs, &file, name, @@ -5067,7 +5067,7 @@ code = ''' // create enough files for mroot to split twice lfs_size_t i = 0; - while (lfs.mtree.u.weight == 0x80000000) { + while (lfs.mtree.weight == 0) { char name[256]; sprintf(name, "tarantula%03x", i); lfsr_file_open(&lfs, &file, name, @@ -5077,8 +5077,8 @@ code = ''' } i = 0; - lfs_size_t orig = lfs.mtree.u.weight; - while (lfs.mtree.u.weight == orig) { + lfs_size_t orig = lfs.mtree.weight; + while (lfs.mtree.weight == orig) { char name[256]; sprintf(name, "xnotata%03x", i); lfsr_file_open(&lfs, &file, name, @@ -5246,7 +5246,7 @@ code = ''' // create enough files for mroot to split twice lfs_size_t i = 0; - while (lfs.mtree.u.weight == 0x80000000) { + while (lfs.mtree.weight == 0) { char name[256]; sprintf(name, "tarantula%03x", i); lfsr_file_open(&lfs, &file, name, @@ -5256,8 +5256,8 @@ code = ''' } i = 0; - lfs_size_t orig = lfs.mtree.u.weight; - while (lfs.mtree.u.weight == orig) { + lfs_size_t orig = lfs.mtree.weight; + while (lfs.mtree.weight == orig) { char name[256]; sprintf(name, "xnotata%03x", i); lfsr_file_open(&lfs, &file, name, @@ -5946,7 +5946,7 @@ code = ''' // create enough files for mroot to split twice lfs_size_t i = 0; - while (lfs.mtree.u.weight == 0x80000000) { + while (lfs.mtree.weight == 0) { char name[256]; sprintf(name, "hydroid%03x", i); lfsr_file_t file; @@ -5957,8 +5957,8 @@ code = ''' } i = 0; - lfs_size_t orig = lfs.mtree.u.weight; - while (lfs.mtree.u.weight == orig) { + lfs_size_t orig = lfs.mtree.weight; + while (lfs.mtree.weight == orig) { char name[256]; sprintf(name, "medusa%03x", i); lfsr_file_t file; @@ -6180,7 +6180,7 @@ code = ''' // create enough files for mroot to split twice lfs_size_t i = 0; - while (lfs.mtree.u.weight == 0x80000000) { + while (lfs.mtree.weight == 0) { char name[256]; sprintf(name, "hydroid%03x", i); lfsr_file_t file; @@ -6191,8 +6191,8 @@ code = ''' } i = 0; - lfs_size_t orig = lfs.mtree.u.weight; - while (lfs.mtree.u.weight == orig) { + lfs_size_t orig = lfs.mtree.weight; + while (lfs.mtree.weight == orig) { char name[256]; sprintf(name, "polyp%03x", i); lfsr_file_t file; @@ -6461,7 +6461,7 @@ code = ''' assert(!(lfs.flags & LFS_I_MKCONSISTENT)); // which means there shouldn't be that many files left - assert((lfs.mtree.u.weight & 0x7fffffff) <= (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight <= (2 << lfs.mdir_bits)); assert(file1.o.o.mdir.rbyd.weight <= 3); assert(file2.o.o.mdir.rbyd.weight <= 3); @@ -6762,7 +6762,7 @@ code = ''' assert(!(lfs.flags & LFS_I_MKCONSISTENT)); // which means there shouldn't be that many files left - assert((lfs.mtree.u.weight & 0x7fffffff) <= (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight <= (2 << lfs.mdir_bits)); assert(file1.o.o.mdir.rbyd.weight <= 3); assert(file2.o.o.mdir.rbyd.weight <= 3); @@ -6920,7 +6920,7 @@ code = ''' assert(!(lfs.flags & LFS_I_MKCONSISTENT)); // which means there shouldn't be that many files left - assert((lfs.mtree.u.weight & 0x7fffffff) <= (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight <= (2 << lfs.mdir_bits)); assert(file1.o.o.mdir.rbyd.weight <= 3); assert(file2.o.o.mdir.rbyd.weight <= 3); @@ -7089,7 +7089,7 @@ code = ''' assert(!(lfs.flags & LFS_I_MKCONSISTENT)); // which means there shouldn't be that many files left - assert((lfs.mtree.u.weight & 0x7fffffff) <= (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight <= (2 << lfs.mdir_bits)); assert(file1.o.o.mdir.rbyd.weight <= 3); assert(file2.o.o.mdir.rbyd.weight <= 3); @@ -7256,7 +7256,7 @@ code = ''' assert(!(lfs.flags & LFS_I_MKCONSISTENT)); // which means there shouldn't be that many files left - assert((lfs.mtree.u.weight & 0x7fffffff) <= (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight <= (2 << lfs.mdir_bits)); assert(file1.o.o.mdir.rbyd.weight <= 3); assert(file2.o.o.mdir.rbyd.weight <= 3); @@ -7421,7 +7421,7 @@ code = ''' assert(!(lfs.flags & LFS_I_MKCONSISTENT)); // which means there shouldn't be that many files left - assert((lfs.mtree.u.weight & 0x7fffffff) <= (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight <= (2 << lfs.mdir_bits)); assert(file1.o.o.mdir.rbyd.weight <= 3); assert(file2.o.o.mdir.rbyd.weight <= 3);