t/helper/test-hash.c: use unsafe_hash_algo()

Remove a series of conditionals within the shared cmd_hash_impl() helper
that powers the 'sha1' and 'sha1-unsafe' helpers.

Instead, replace them with a single conditional that transforms the
specified hash algorithm into its unsafe variant. Then all subsequent
calls can directly use whatever function it wants to call without having
to decide between the safe and unsafe variants.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Taylor Blau 2025-01-23 12:34:36 -05:00 committed by Junio C Hamano
parent f0c266af4e
commit 3339180b28
1 changed files with 5 additions and 12 deletions

View File

@ -9,6 +9,8 @@ int cmd_hash_impl(int ac, const char **av, int algo, int unsafe)
int binary = 0;
char *buffer;
const struct git_hash_algo *algop = &hash_algos[algo];
if (unsafe)
algop = unsafe_hash_algo(algop);

if (ac == 2) {
if (!strcmp(av[1], "-b"))
@ -27,10 +29,7 @@ int cmd_hash_impl(int ac, const char **av, int algo, int unsafe)
die("OOPS");
}

if (unsafe)
algop->unsafe_init_fn(&ctx);
else
algop->init_fn(&ctx);
algop->init_fn(&ctx);

while (1) {
ssize_t sz, this_sz;
@ -49,15 +48,9 @@ int cmd_hash_impl(int ac, const char **av, int algo, int unsafe)
}
if (this_sz == 0)
break;
if (unsafe)
algop->unsafe_update_fn(&ctx, buffer, this_sz);
else
algop->update_fn(&ctx, buffer, this_sz);
algop->update_fn(&ctx, buffer, this_sz);
}
if (unsafe)
algop->unsafe_final_fn(hash, &ctx);
else
algop->final_fn(hash, &ctx);
algop->final_fn(hash, &ctx);

if (binary)
fwrite(hash, 1, algop->rawsz, stdout);