diff options
Diffstat (limited to 'cache-tree.c')
-rw-r--r-- | cache-tree.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/cache-tree.c b/cache-tree.c index e03e72c34a..6574eeb80d 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -400,15 +400,14 @@ static int update_one(struct cache_tree *it, } if (repair) { - unsigned char sha1[20]; - hash_sha1_file(buffer.buf, buffer.len, tree_type, sha1); - if (has_sha1_file(sha1)) - hashcpy(it->oid.hash, sha1); + struct object_id oid; + hash_object_file(buffer.buf, buffer.len, tree_type, &oid); + if (has_sha1_file(oid.hash)) + oidcpy(&it->oid, &oid); else to_invalidate = 1; } else if (dryrun) - hash_sha1_file(buffer.buf, buffer.len, tree_type, - it->oid.hash); + hash_object_file(buffer.buf, buffer.len, tree_type, &it->oid); else if (write_sha1_file(buffer.buf, buffer.len, tree_type, it->oid.hash)) { strbuf_release(&buffer); return -1; |