Skip to content

Commit

Permalink
write_sha1_file(): do not use a separate sha1[] array
Browse files Browse the repository at this point in the history
In the beginning, write_sha1_file() did not have a way to tell the
caller the name of the object it wrote to the caller.  This was
changed in d6d3f9d (This implements the new "recursive tree"
write-tree., 2005-04-09) by adding the "returnsha1" parameter to the
function so that the callers who are interested in the value can
optionally pass a pointer to receive it.

It turns out that all callers do want to know the name of the object
it just has written.  Nobody passes a NULL to this parameter, hence
it is not necessary to use a separate sha1[] array to receive the
result from  write_sha1_file_prepare(), and copy the result to the
returnsha1 supplied by the caller.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed May 5, 2015
1 parent 383c342 commit 1427a7f
Showing 1 changed file with 1 addition and 4 deletions.
5 changes: 1 addition & 4 deletions sha1_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -2945,18 +2945,15 @@ static int write_loose_object(const unsigned char *sha1, char *hdr, int hdrlen,
return move_temp_to_file(tmp_file, filename);
}

int write_sha1_file(const void *buf, unsigned long len, const char *type, unsigned char *returnsha1)
int write_sha1_file(const void *buf, unsigned long len, const char *type, unsigned char *sha1)
{
unsigned char sha1[20];
char hdr[32];
int hdrlen;

/* Normally if we have it in the pack then we do not bother writing
* it out into .git/objects/??/?{38} file.
*/
write_sha1_file_prepare(buf, len, type, sha1, hdr, &hdrlen);
if (returnsha1)
hashcpy(returnsha1, sha1);
if (has_sha1_file(sha1))
return 0;
return write_loose_object(sha1, hdr, hdrlen, buf, len, 0);
Expand Down

0 comments on commit 1427a7f

Please sign in to comment.