X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Flookup_table.c;h=214e6dbf7a7dcdebaa2d59cb8c4eec72e7063296;hp=4fbcf7e56a3ccea040c19ffae1e466d34b2e86ff;hb=3f9b53a4a214a254bb27ed30994faf2a0fd12375;hpb=394c5bd3292c0f3168416c0a5f25989e557b3cfc diff --git a/src/lookup_table.c b/src/lookup_table.c index 4fbcf7e5..214e6dbf 100644 --- a/src/lookup_table.c +++ b/src/lookup_table.c @@ -914,6 +914,19 @@ retrieve_lte_pointer(struct wim_lookup_table_entry *lte) return NULL; } +/* Calculate the SHA1 message digest of a stream and move it from the list of + * unhashed streams to the stream lookup table, possibly joining it with an + * existing lookup table entry for an identical stream. + * + * @lte: An unhashed lookup table entry. + * @lookup_table: Lookup table for the WIM. + * @lte_ret: On success, write a pointer to the resulting lookup table + * entry to this location. This will be the same as @lte + * if it was inserted into the lookup table, or different if + * a duplicate stream was found. + * + * Returns 0 on success; nonzero if there is an error reading the stream. + */ int hash_unhashed_stream(struct wim_lookup_table_entry *lte, struct wim_lookup_table *lookup_table, @@ -952,9 +965,7 @@ hash_unhashed_stream(struct wim_lookup_table_entry *lte, /* No duplicate stream, so we need to insert * this stream into the lookup table and treat * it as a hashed stream. */ - list_del(<e->unhashed_list); lookup_table_insert(lookup_table, lte); - lte->out_refcnt = lte->refcnt; lte->unhashed = 0; } if (lte_ret)