From: Yue Hu <[email protected]> The statistic update of occupied_size is the same as original size. Also, correct naming to update_file_size_statistics().
Signed-off-by: Yue Hu <[email protected]> --- dump/main.c | 38 +++++++++++++------------------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/dump/main.c b/dump/main.c index 93dce8b..bc4f047 100644 --- a/dump/main.c +++ b/dump/main.c @@ -225,36 +225,23 @@ static void inc_file_extension_count(const char *dname, unsigned int len) ++stats.file_type_stat[type]; } -static void update_file_size_statatics(erofs_off_t occupied_size, - erofs_off_t original_size) +static void update_file_size_statistics(erofs_off_t size, bool original) { - int occupied_size_mark, original_size_mark; + unsigned int *file_size = original ? stats.file_original_size : + stats.file_comp_size; + int size_mark = 0; - original_size_mark = 0; - occupied_size_mark = 0; - occupied_size >>= 10; - original_size >>= 10; + size >>= 10; - while (occupied_size || original_size) { - if (occupied_size) { - occupied_size >>= 1; - occupied_size_mark++; - } - if (original_size) { - original_size >>= 1; - original_size_mark++; - } + while (size) { + size >>= 1; + size_mark++; } - if (original_size_mark >= FILE_MAX_SIZE_BITS) - stats.file_original_size[FILE_MAX_SIZE_BITS]++; - else - stats.file_original_size[original_size_mark]++; - - if (occupied_size_mark >= FILE_MAX_SIZE_BITS) - stats.file_comp_size[FILE_MAX_SIZE_BITS]++; + if (size_mark >= FILE_MAX_SIZE_BITS) + file_size[FILE_MAX_SIZE_BITS]++; else - stats.file_comp_size[occupied_size_mark]++; + file_size[size_mark]++; } static int erofsdump_ls_dirent_iter(struct erofs_dir_context *ctx) @@ -301,7 +288,8 @@ static int erofsdump_readdir(struct erofs_dir_context *ctx) stats.files_total_origin_size += vi.i_size; inc_file_extension_count(ctx->dname, ctx->de_namelen); stats.files_total_size += occupied_size; - update_file_size_statatics(occupied_size, vi.i_size); + update_file_size_statistics(vi.i_size, true); + update_file_size_statistics(occupied_size, false); } /* XXXX: the dir depth should be restricted in order to avoid loops */ -- 2.17.1
