From: Patryk Obara Date: Sun, 28 Jan 2018 00:13:21 +0000 (+0100) Subject: sha1_file: convert write_loose_object to object_id X-Git-Tag: v2.17.0-rc0~96^2~1 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/3fc7281ffa2533820d26809223c7181256b88fe2 sha1_file: convert write_loose_object to object_id Convert the definition and declaration of static write_loose_object function to struct object_id. Signed-off-by: Patryk Obara Signed-off-by: Junio C Hamano --- diff --git a/sha1_file.c b/sha1_file.c index d9ee966d74..59238f5bea 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -1548,16 +1548,17 @@ static int create_tmpfile(struct strbuf *tmp, const char *filename) return fd; } -static int write_loose_object(const unsigned char *sha1, char *hdr, int hdrlen, - const void *buf, unsigned long len, time_t mtime) +static int write_loose_object(const struct object_id *oid, char *hdr, + int hdrlen, const void *buf, unsigned long len, + time_t mtime) { int fd, ret; unsigned char compressed[4096]; git_zstream stream; git_SHA_CTX c; - unsigned char parano_sha1[20]; + struct object_id parano_oid; static struct strbuf tmp_file = STRBUF_INIT; - const char *filename = sha1_file_name(sha1); + const char *filename = sha1_file_name(oid->hash); fd = create_tmpfile(&tmp_file, filename); if (fd < 0) { @@ -1594,13 +1595,16 @@ static int write_loose_object(const unsigned char *sha1, char *hdr, int hdrlen, } while (ret == Z_OK); if (ret != Z_STREAM_END) - die("unable to deflate new object %s (%d)", sha1_to_hex(sha1), ret); + die("unable to deflate new object %s (%d)", oid_to_hex(oid), + ret); ret = git_deflate_end_gently(&stream); if (ret != Z_OK) - die("deflateEnd on object %s failed (%d)", sha1_to_hex(sha1), ret); - git_SHA1_Final(parano_sha1, &c); - if (hashcmp(sha1, parano_sha1) != 0) - die("confused by unstable object source data for %s", sha1_to_hex(sha1)); + die("deflateEnd on object %s failed (%d)", oid_to_hex(oid), + ret); + git_SHA1_Final(parano_oid.hash, &c); + if (oidcmp(oid, ¶no_oid) != 0) + die("confused by unstable object source data for %s", + oid_to_hex(oid)); close_sha1_file(fd); @@ -1645,7 +1649,7 @@ int write_object_file(const void *buf, unsigned long len, const char *type, write_object_file_prepare(buf, len, type, oid, hdr, &hdrlen); if (freshen_packed_object(oid->hash) || freshen_loose_object(oid->hash)) return 0; - return write_loose_object(oid->hash, hdr, hdrlen, buf, len, 0); + return write_loose_object(oid, hdr, hdrlen, buf, len, 0); } int hash_sha1_file_literally(const void *buf, unsigned long len, const char *type, @@ -1663,7 +1667,7 @@ int hash_sha1_file_literally(const void *buf, unsigned long len, const char *typ goto cleanup; if (freshen_packed_object(oid->hash) || freshen_loose_object(oid->hash)) goto cleanup; - status = write_loose_object(oid->hash, header, hdrlen, buf, len, 0); + status = write_loose_object(oid, header, hdrlen, buf, len, 0); cleanup: free(header); @@ -1685,7 +1689,7 @@ int force_object_loose(const struct object_id *oid, time_t mtime) if (!buf) return error("cannot read sha1_file for %s", oid_to_hex(oid)); hdrlen = xsnprintf(hdr, sizeof(hdr), "%s %lu", typename(type), len) + 1; - ret = write_loose_object(oid->hash, hdr, hdrlen, buf, len, mtime); + ret = write_loose_object(oid, hdr, hdrlen, buf, len, mtime); free(buf); return ret;