From dc28467db83432f19f004bb76f5e8515c71f8d0b Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Fri, 15 Sep 2023 18:11:47 +0200 Subject: libsqfs: Cleanup readdir state struct There is no need to keep a copy of the state data internally. If the external user wants to reset/rewind, they can simply keep a copy of the old state, now that it is completely transparent. Signed-off-by: David Oberhollenzer --- include/sqfs/dir_reader.h | 7 +------ include/sqfs/meta_reader.h | 25 ++++--------------------- 2 files changed, 5 insertions(+), 27 deletions(-) (limited to 'include') diff --git a/include/sqfs/dir_reader.h b/include/sqfs/dir_reader.h index 1c95e30..11f7ae0 100644 --- a/include/sqfs/dir_reader.h +++ b/include/sqfs/dir_reader.h @@ -128,7 +128,7 @@ struct sqfs_dir_reader_state_t { * the @ref SQFS_DIR_READER_DOT_ENTRIES flag and the behavior was * not disabled when opening the directory. */ - sqfs_u64 cur_ref; + sqfs_u64 dir_ref; /** * @brief A reference to the current entries inode @@ -142,11 +142,6 @@ struct sqfs_dir_reader_state_t { * @brief An opaque, internal state value */ sqfs_u8 state; - - /** - * @brief A backup of `state` to reset the state if requested - */ - sqfs_u8 start_state; }; #ifdef __cplusplus diff --git a/include/sqfs/meta_reader.h b/include/sqfs/meta_reader.h index 9563b82..8e94acd 100644 --- a/include/sqfs/meta_reader.h +++ b/include/sqfs/meta_reader.h @@ -54,31 +54,14 @@ * @brief Encapsulates state for simple directory reading */ struct sqfs_readdir_state_t { - struct { - sqfs_u64 block; - size_t offset; - size_t size; - } init, current; - + sqfs_u64 inode_block; + sqfs_u64 block; + size_t offset; + size_t size; size_t entries; - sqfs_u32 inum_base; - sqfs_u64 inode_block; }; -/** - * @brief Rewind a directory state object back to its starting location - * - * @memberof sqfs_readdir_state_t - * - * @param it A pointer to the directory state. - */ -static SQFS_INLINE void sqfs_readdir_state_reset(sqfs_readdir_state_t *s) -{ - s->current = s->init; - s->entries = 0; -} - #ifdef __cplusplus extern "C" { #endif -- cgit v1.2.3