builtin/hash-object: convert to struct object_id

Signed-off-by: Patryk Obara <patryk.obara@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patryk Obara
2017-08-20 22:09:26 +02:00
committed by Junio C Hamano
parent b3622a4ee9
commit eab8bf292b

View File

@@ -16,7 +16,7 @@
* needs to bypass the data conversion performed by, and the type * needs to bypass the data conversion performed by, and the type
* limitation imposed by, index_fd() and its callees. * limitation imposed by, index_fd() and its callees.
*/ */
static int hash_literally(unsigned char *sha1, int fd, const char *type, unsigned flags) static int hash_literally(struct object_id *oid, int fd, const char *type, unsigned flags)
{ {
struct strbuf buf = STRBUF_INIT; struct strbuf buf = STRBUF_INIT;
int ret; int ret;
@@ -24,7 +24,7 @@ static int hash_literally(unsigned char *sha1, int fd, const char *type, unsigne
if (strbuf_read(&buf, fd, 4096) < 0) if (strbuf_read(&buf, fd, 4096) < 0)
ret = -1; ret = -1;
else else
ret = hash_sha1_file_literally(buf.buf, buf.len, type, sha1, flags); ret = hash_sha1_file_literally(buf.buf, buf.len, type, oid->hash, flags);
strbuf_release(&buf); strbuf_release(&buf);
return ret; return ret;
} }
@@ -33,16 +33,16 @@ static void hash_fd(int fd, const char *type, const char *path, unsigned flags,
int literally) int literally)
{ {
struct stat st; struct stat st;
unsigned char sha1[20]; struct object_id oid;
if (fstat(fd, &st) < 0 || if (fstat(fd, &st) < 0 ||
(literally (literally
? hash_literally(sha1, fd, type, flags) ? hash_literally(&oid, fd, type, flags)
: index_fd(sha1, fd, &st, type_from_string(type), path, flags))) : index_fd(oid.hash, fd, &st, type_from_string(type), path, flags)))
die((flags & HASH_WRITE_OBJECT) die((flags & HASH_WRITE_OBJECT)
? "Unable to add %s to database" ? "Unable to add %s to database"
: "Unable to hash %s", path); : "Unable to hash %s", path);
printf("%s\n", sha1_to_hex(sha1)); printf("%s\n", oid_to_hex(&oid));
maybe_flush_or_die(stdout, "hash to stdout"); maybe_flush_or_die(stdout, "hash to stdout");
} }