Dropped bmoss/bsprout support from lfsr_stat_

I think this was just overlooked when dropping bmoss/bsprouts.

Dropping bmoss here makes it so file size is always the first leb128 in
the data, which is nice.

Saves a bit of code:

           code          stack          ctx
  before: 35864           2440          640
  after:  35820 (-0.1%)   2440 (+0.0%)  640 (+0.0%)
This commit is contained in:
Christopher Haster
2025-04-25 14:37:09 -05:00
parent 89cb740e1c
commit f67791b511
+7 -13
View File
@@ -10724,28 +10724,22 @@ static int lfsr_stat_(lfs_t *lfs, const lfsr_mdir_t *mdir,
} }
info->name[name_len] = '\0'; info->name[name_len] = '\0';
// get file size if we're a regular file, this gets a bit messy // default size to zero
// because of the different file representations
info->size = 0; info->size = 0;
// get file size if we're a regular file
if (tag == LFSR_TAG_REG) { if (tag == LFSR_TAG_REG) {
// inlined?
lfsr_tag_t tag; lfsr_tag_t tag;
lfsr_data_t data; lfsr_data_t data;
int err = lfsr_mdir_lookupnext(lfs, mdir, LFSR_TAG_DATA, int err = lfsr_mdir_lookup(lfs, mdir,
LFSR_TAG_MASK8 | LFSR_TAG_STRUCT,
&tag, &data); &tag, &data);
if (err && err != LFS_ERR_NOENT) { if (err && err != LFS_ERR_NOENT) {
return err; return err;
} }
// may be a moss (simple inlined data) if (err != LFS_ERR_NOENT) {
if (err != LFS_ERR_NOENT && tag == LFSR_TAG_DATA) { // in bshrubs/btrees, size is always the first field
info->size = lfsr_data_size(data);
// or a block/bshrub/btree, size is always first field here
} else if (err != LFS_ERR_NOENT
&& (tag == LFSR_TAG_BLOCK
|| tag == LFSR_TAG_BSHRUB
|| tag == LFSR_TAG_BTREE)) {
err = lfsr_data_readleb128(lfs, &data, &info->size); err = lfsr_data_readleb128(lfs, &data, &info->size);
if (err) { if (err) {
return err; return err;