]> git.ipfire.org Git - thirdparty/git.git/commitdiff
csum-file.c: extract algop from hashfile_checksum_valid()
authorTaylor Blau <me@ttaylorr.com>
Thu, 23 Jan 2025 17:34:26 +0000 (12:34 -0500)
committerJunio C Hamano <gitster@pobox.com>
Thu, 23 Jan 2025 18:28:16 +0000 (10:28 -0800)
Perform a similar transformation as in the previous commit, but focused
instead on hashfile_checksum_valid(). This function does not work with a
hashfile structure itself, and instead validates the raw contents of a
file written using the hashfile API.

We'll want to be prepared for a similar change to this function in the
future, so prepare ourselves for that by extracting 'the_hash_algo' into
its own field for use within this function.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
csum-file.c

index b28cd047e3f4862bcd4d7483ebdc6c8d641a454f..7a71121e3408758c1f22d75432579fc0ab4e0d43 100644 (file)
@@ -242,14 +242,15 @@ int hashfile_checksum_valid(const unsigned char *data, size_t total_len)
 {
        unsigned char got[GIT_MAX_RAWSZ];
        git_hash_ctx ctx;
-       size_t data_len = total_len - the_hash_algo->rawsz;
+       const struct git_hash_algo *algop = the_hash_algo;
+       size_t data_len = total_len - algop->rawsz;
 
-       if (total_len < the_hash_algo->rawsz)
+       if (total_len < algop->rawsz)
                return 0; /* say "too short"? */
 
-       the_hash_algo->unsafe_init_fn(&ctx);
-       the_hash_algo->unsafe_update_fn(&ctx, data, data_len);
-       the_hash_algo->unsafe_final_fn(got, &ctx);
+       algop->unsafe_init_fn(&ctx);
+       algop->unsafe_update_fn(&ctx, data, data_len);
+       algop->unsafe_final_fn(got, &ctx);
 
-       return hasheq(got, data + data_len, the_repository->hash_algo);
+       return hasheq(got, data + data_len, algop);
 }