From 257a5737d708b706be29526050f61ded9793d0ab Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Sun, 7 Mar 2021 01:14:13 +0100 Subject: Rewrite the str_table to internally use the more opimized hash_table Signed-off-by: David Oberhollenzer --- lib/sqfs/xattr/xattr_writer.c | 4 ++-- lib/sqfs/xattr/xattr_writer.h | 2 -- lib/sqfs/xattr/xattr_writer_flush.c | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) (limited to 'lib/sqfs/xattr') diff --git a/lib/sqfs/xattr/xattr_writer.c b/lib/sqfs/xattr/xattr_writer.c index e38c2be..c49aaf1 100644 --- a/lib/sqfs/xattr/xattr_writer.c +++ b/lib/sqfs/xattr/xattr_writer.c @@ -95,10 +95,10 @@ sqfs_xattr_writer_t *sqfs_xattr_writer_create(sqfs_u32 flags) if (xwr == NULL) return NULL; - if (str_table_init(&xwr->keys, XATTR_KEY_BUCKETS)) + if (str_table_init(&xwr->keys)) goto fail_keys; - if (str_table_init(&xwr->values, XATTR_VALUE_BUCKETS)) + if (str_table_init(&xwr->values)) goto fail_values; if (array_init(&xwr->kv_pairs, sizeof(sqfs_u64), diff --git a/lib/sqfs/xattr/xattr_writer.h b/lib/sqfs/xattr/xattr_writer.h index ff8479a..6f414b8 100644 --- a/lib/sqfs/xattr/xattr_writer.h +++ b/lib/sqfs/xattr/xattr_writer.h @@ -28,8 +28,6 @@ #include -#define XATTR_KEY_BUCKETS 31 -#define XATTR_VALUE_BUCKETS 511 #define XATTR_INITIAL_PAIR_CAP 128 #define MK_PAIR(key, value) (((sqfs_u64)(key) << 32UL) | (sqfs_u64)(value)) diff --git a/lib/sqfs/xattr/xattr_writer_flush.c b/lib/sqfs/xattr/xattr_writer_flush.c index 85ec724..98d2619 100644 --- a/lib/sqfs/xattr/xattr_writer_flush.c +++ b/lib/sqfs/xattr/xattr_writer_flush.c @@ -200,11 +200,11 @@ static int write_kv_pairs(const sqfs_xattr_writer_t *xwr, size_t i; ool_locations = alloc_array(sizeof(ool_locations[0]), - xwr->values.num_strings); + str_table_count(&xwr->values)); if (ool_locations == NULL) return SQFS_ERROR_ALLOC; - for (i = 0; i < xwr->values.num_strings; ++i) + for (i = 0; i < str_table_count(&xwr->values); ++i) ool_locations[i] = 0xFFFFFFFFFFFFFFFFUL; for (blk = xwr->kv_block_first; blk != NULL; blk = blk->next) { -- cgit v1.2.3