Re: [PATCH 1/4] hashfile: allow skipping the hash function
- From
Jeff King <peff@peff.net>
- Date
- Dec 8, 2022, 07:32 UTC
- Message-ID
- <Y5GTJuM3jNnStvsQ@coredump.intra.peff.net>
- In-Reply-To
- <221207.868rjiam86.gmgdl@evledraar.gmail.com>
On Wed, Dec 07, 2022 at 11:13:15PM +0100, Ævar Arnfjörð Bjarmason wrote:
Show 23 quoted lines
> > + if (f->skip_hash)
> > + memset(f->buffer, 0, the_hash_algo->rawsz);
>
> Here you're hardcoding a new version of null_oid(), but we can use it
> instead. Perhaps:
>
> diff --git a/csum-file.c b/csum-file.c
> index 3243473c3d7..b54c4f66cbb 100644
> --- a/csum-file.c
> +++ b/csum-file.c
> @@ -63,11 +63,12 @@ int finalize_hashfile(struct hashfile *f, unsigned char *result,
> enum fsync_component component, unsigned int flags)
> {
> int fd;
> + const struct object_id *const noid = null_oid();
>
> hashflush(f);
>
> if (f->skip_hash)
> - memset(f->buffer, 0, the_hash_algo->rawsz);
> + memcpy(f->buffer, noid, sizeof(*noid));
> else
> the_hash_algo->final_fn(f->buffer, &f->ctx);I don't think that's quite right; the object_id struct has other stuff in it. You'd probably want:
hashcpy(f->buffer, null_oid());
But I think we already have a helper to just do it directly:
hashclr(f->buffer);
-Peff