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
* 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;
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)
ret = -1;
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);
return ret;
}
@ -33,16 +33,16 @@ static void hash_fd(int fd, const char *type, const char *path, unsigned flags,
int literally)
{
struct stat st;
unsigned char sha1[20];
struct object_id oid;
if (fstat(fd, &st) < 0 ||
(literally
? hash_literally(sha1, fd, type, flags)
: index_fd(sha1, fd, &st, type_from_string(type), path, flags)))
? hash_literally(&oid, fd, type, flags)
: index_fd(oid.hash, fd, &st, type_from_string(type), path, flags)))
die((flags & HASH_WRITE_OBJECT)
? "Unable to add %s to database"
: "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");
}