diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2021-03-07 01:14:13 +0100 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2021-03-07 01:18:03 +0100 |
commit | 257a5737d708b706be29526050f61ded9793d0ab (patch) | |
tree | b7b5789e63a85187c0cbffb965c9c7233bb26249 /lib/sqfs | |
parent | 5cc1d55d769e278f51eeb057b08d04afd6bb0c44 (diff) |
Rewrite the str_table to internally use the more opimized hash_table
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/sqfs')
-rw-r--r-- | lib/sqfs/xattr/xattr_writer.c | 4 | ||||
-rw-r--r-- | lib/sqfs/xattr/xattr_writer.h | 2 | ||||
-rw-r--r-- | lib/sqfs/xattr/xattr_writer_flush.c | 4 |
3 files changed, 4 insertions, 6 deletions
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 <assert.h> -#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) { |