Tweaked grms to use bid=-1 as indicator of unused grm slots

This is just a proof-of-concept for compressed mids. We can't rely on
rid=-1 as a special indicator as before.
This commit is contained in:
Christopher Haster
2023-08-25 00:17:36 -05:00
parent 9f18b1fd50
commit 302bfa17de
+3 -3
View File
@@ -1624,15 +1624,15 @@ static int lfsr_gdelta_xor(lfs_t *lfs,
// GRM (global remove) things // GRM (global remove) things
static inline bool lfsr_grm_hasrm(const lfsr_grm_t *grm) { static inline bool lfsr_grm_hasrm(const lfsr_grm_t *grm) {
return grm->rms[0].rid != -1; return grm->rms[0].bid != -1;
} }
static inline uint8_t lfsr_grm_count(const lfsr_grm_t *grm) { static inline uint8_t lfsr_grm_count(const lfsr_grm_t *grm) {
return (grm->rms[0].rid != -1) + (grm->rms[1].rid != -1); return (grm->rms[0].bid != -1) + (grm->rms[1].bid != -1);
} }
static inline void lfsr_grm_pushrm(lfsr_grm_t *grm, lfsr_mid_t mid) { static inline void lfsr_grm_pushrm(lfsr_grm_t *grm, lfsr_mid_t mid) {
LFS_ASSERT(grm->rms[1].rid == -1); LFS_ASSERT(grm->rms[1].bid == -1);
grm->rms[1] = grm->rms[0]; grm->rms[1] = grm->rms[0];
grm->rms[0] = mid; grm->rms[0] = mid;
} }