Add a uthash to uncompressed digest
authorStefano Babic <sbabic@denx.de>
Thu, 19 Aug 2021 16:11:02 +0000 (18:11 +0200)
committerStefano Babic <sbabic@denx.de>
Tue, 31 Aug 2021 12:59:23 +0000 (14:59 +0200)
Signed-off-by: Stefano Babic <sbabic@denx.de>
src/lib/index/index_read.c
src/lib/zck_private.h

index ea0ecbec5d815aaebab1c5bb701e6bb71e774571..fe0ee1301127c39136e290cbdd719d40f7b222f7 100644 (file)
@@ -106,6 +106,10 @@ bool index_read(zckCtx *zck, char *data, size_t size, size_t max_length) {
             }
             memcpy(new->digest_uncompressed, data+length, zck->index.digest_size);
             new->digest_size_uncompressed = zck->index.digest_size;
+            HASH_FIND(hh, zck->index.ht, new->digest, new->digest_size, tmp);
+            if(!tmp)
+               HASH_ADD_KEYPTR(hhuncomp, zck->index_uncomp.ht, new->digest_uncompressed, new->digest_size,
+                               new);
             length += zck->index.digest_size;
        }
         /* Read and store entry length */
index 49eb4c3e97fd27a9a6e913d9f051c451703aa7e4..d21f8c55141230e2d33b4481aeb1fcfe1e1342cf 100644 (file)
@@ -161,6 +161,7 @@ struct zckChunk {
     struct zckChunk *src;
     zckCtx *zck;
     UT_hash_handle hh;
+    UT_hash_handle hhuncomp;
 };
 
 /* Contains everything about an index and a pointer to the first index item */
@@ -264,6 +265,7 @@ 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;