diff: convert reuse_worktree_file to struct object_id
Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
f9704c2d82
commit
fb4a1c0dc8
10
diff.c
10
diff.c
@ -2717,7 +2717,7 @@ void fill_filespec(struct diff_filespec *spec, const struct object_id *oid,
|
||||
* the work tree has that object contents, return true, so that
|
||||
* prepare_temp_file() does not have to inflate and extract.
|
||||
*/
|
||||
static int reuse_worktree_file(const char *name, const unsigned char *sha1, int want_file)
|
||||
static int reuse_worktree_file(const char *name, const struct object_id *oid, int want_file)
|
||||
{
|
||||
const struct cache_entry *ce;
|
||||
struct stat st;
|
||||
@ -2748,7 +2748,7 @@ static int reuse_worktree_file(const char *name, const unsigned char *sha1, int
|
||||
* objects however would tend to be slower as they need
|
||||
* to be individually opened and inflated.
|
||||
*/
|
||||
if (!FAST_WORKING_DIRECTORY && !want_file && has_sha1_pack(sha1))
|
||||
if (!FAST_WORKING_DIRECTORY && !want_file && has_sha1_pack(oid->hash))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
@ -2768,7 +2768,7 @@ static int reuse_worktree_file(const char *name, const unsigned char *sha1, int
|
||||
* This is not the sha1 we are looking for, or
|
||||
* unreusable because it is not a regular file.
|
||||
*/
|
||||
if (hashcmp(sha1, ce->oid.hash) || !S_ISREG(ce->ce_mode))
|
||||
if (oidcmp(oid, &ce->oid) || !S_ISREG(ce->ce_mode))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
@ -2842,7 +2842,7 @@ int diff_populate_filespec(struct diff_filespec *s, unsigned int flags)
|
||||
return diff_populate_gitlink(s, size_only);
|
||||
|
||||
if (!s->oid_valid ||
|
||||
reuse_worktree_file(s->path, s->oid.hash, 0)) {
|
||||
reuse_worktree_file(s->path, &s->oid, 0)) {
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
struct stat st;
|
||||
int fd;
|
||||
@ -3008,7 +3008,7 @@ static struct diff_tempfile *prepare_temp_file(const char *name,
|
||||
|
||||
if (!S_ISGITLINK(one->mode) &&
|
||||
(!one->oid_valid ||
|
||||
reuse_worktree_file(name, one->oid.hash, 1))) {
|
||||
reuse_worktree_file(name, &one->oid, 1))) {
|
||||
struct stat st;
|
||||
if (lstat(name, &st) < 0) {
|
||||
if (errno == ENOENT)
|
||||
|
Loading…
Reference in New Issue
Block a user