Do not duplicate index structure for uncompressed
authorStefano Babic <sbabic@denx.de>
Fri, 10 Sep 2021 20:39:01 +0000 (22:39 +0200)
committerStefano Babic <sbabic@denx.de>
Tue, 12 Oct 2021 09:11:47 +0000 (11:11 +0200)
Index is just one, there is no need to duplicate the structure to
support uthash for digest related to the uncompressed data. Drop
index_uncomp and add uthash for uncompressed data.

Signed-off-by: Stefano Babic <sbabic@denx.de>
src/lib/index/index_read.c
src/lib/zck_private.h

index 9b2c43505c7ba75dff1d98e012dfc3d47765eb88..36357da1d40505f1af9b6c3e25512f3e90f1d2e5 100644 (file)
@@ -105,9 +105,9 @@ bool index_read(zckCtx *zck, char *data, size_t size, size_t max_length) {
                 return false;
             }
             memcpy(new->digest_uncompressed, data+length, zck->index.digest_size);
-            HASH_FIND(hh, zck->index.ht, new->digest, new->digest_size, tmp);
+            HASH_FIND(hhuncomp, zck->index.htuncomp, new->digest_uncompressed, new->digest_size, tmp);
             if(!tmp)
-               HASH_ADD_KEYPTR(hhuncomp, zck->index_uncomp.ht, new->digest_uncompressed, new->digest_size,
+               HASH_ADD_KEYPTR(hhuncomp, zck->index.htuncomp, new->digest_uncompressed, new->digest_size,
                                new);
             length += zck->index.digest_size;
        }
index 019bdb28022aff50161a194f2e32bccb2d8640bb..fa7ee77b230aa4ebaac9a9d79352959a4457da05 100644 (file)
@@ -173,6 +173,7 @@ struct zckIndex {
     zckChunk *last;
     zckChunk *current;
     zckChunk *ht;
+    zckChunk *htuncomp;
 };
 
 /* Contains a single range */
@@ -264,7 +265,6 @@ struct zckCtx {
     zckIndex index;
     zckChunk *work_index_item;
     zckHash work_index_hash;
-    zckIndex index_uncomp;
     zckChunk *work_index_item_uncomp;
     zckHash work_index_hash_uncomp;
     size_t stream;