diff --git a/csum-file.c b/csum-file.c index 7e81391524..fe18ee1de3 100644 --- a/csum-file.c +++ b/csum-file.c @@ -55,17 +55,12 @@ void hashflush(struct hashfile *f) } } -static void free_hashfile_memory(struct hashfile *f) -{ - free(f->buffer); - free(f->check_buffer); - free(f); -} - void free_hashfile(struct hashfile *f) { git_hash_discard(&f->ctx); - free_hashfile_memory(f); + free(f->buffer); + free(f->check_buffer); + free(f); } int finalize_hashfile(struct hashfile *f, unsigned char *result, @@ -75,12 +70,10 @@ int finalize_hashfile(struct hashfile *f, unsigned char *result, hashflush(f); - if (f->skip_hash) { - git_hash_discard(&f->ctx); + if (f->skip_hash) hashclr(f->buffer, f->algop); - } else { + else git_hash_final(f->buffer, &f->ctx); - } if (result) hashcpy(result, f->buffer, f->algop); @@ -105,7 +98,7 @@ int finalize_hashfile(struct hashfile *f, unsigned char *result, if (close(f->check_fd)) die_errno("%s: sha1 file error on close", f->name); } - free_hashfile_memory(f); + free_hashfile(f); return fd; }