From 59b0906fa187e57a8377c22c99327f8db16108db Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Mon, 6 Jan 2025 00:47:30 -0600 Subject: [PATCH] Better leveraged lfsr_traversal_init in high-level functions I think lfsr_traversal_rewind_ originally reset everything manually because it was cheaper than creating a compound-literal, but this is no longer relevant now that lfsr_traversal_init exists. This saves a bit of code: code stack ctx before: 37844 2608 752 after: 37812 (-0.1%) 2608 (+0.0%) 752 (+0.0%) --- lfs.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/lfs.c b/lfs.c index acadd31e..2e2c9eb1 100644 --- a/lfs.c +++ b/lfs.c @@ -14726,21 +14726,10 @@ static void lfsr_traversal_clobber(lfs_t *lfs, lfsr_traversal_t *t) { static int lfsr_traversal_rewind_(lfs_t *lfs, lfsr_traversal_t *t) { (void)lfs; + // reset traversal - t->o.o.flags = lfsr_t_settstate( - t->o.o.flags & ~(LFS_T_DIRTY | LFS_T_MUTATED), - LFSR_TSTATE_MROOTANCHOR); - t->o.o.mdir.mid = -1; - t->o.o.mdir.rbyd.weight = 0; - t->o.o.mdir.rbyd.blocks[0] = -1; - t->o.o.mdir.rbyd.blocks[1] = -1; - t->o.bshrub.u.bshrub.weight = 0; - t->o.bshrub.u.bshrub.blocks[0] = -1; - t->ot = NULL; - t->u.mtortoise.blocks[0] = 0; - t->u.mtortoise.blocks[1] = 0; - t->u.mtortoise.step = 0; - t->u.mtortoise.power = 0; + lfsr_traversal_init(t, + t->o.o.flags & ~(LFS_T_DIRTY | LFS_T_MUTATED | LFS_T_TSTATE)); // and clear any pending blocks t->blocks[0] = -1;