1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-10 02:36:08 +02:00

ref_resolves_to_object(): new function

Extract new function ref_resolves_to_object() from
entry_resolves_to_object(). It can be used even if there is no ref_entry
at hand.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Michael Haggerty 2016-06-18 06:15:14 +02:00 committed by Junio C Hamano
parent ffeef64231
commit a873924483

View File

@ -513,21 +513,34 @@ static void sort_ref_dir(struct ref_dir *dir)
} }
/* /*
* Return true iff the reference described by entry can be resolved to * Return true if refname, which has the specified oid and flags, can
* an object in the database. Emit a warning if the referred-to * be resolved to an object in the database. If the referred-to object
* object does not exist. * does not exist, emit a warning and return false.
*/ */
static int entry_resolves_to_object(struct ref_entry *entry) static int ref_resolves_to_object(const char *refname,
const struct object_id *oid,
unsigned int flags)
{ {
if (entry->flag & REF_ISBROKEN) if (flags & REF_ISBROKEN)
return 0; return 0;
if (!has_sha1_file(entry->u.value.oid.hash)) { if (!has_sha1_file(oid->hash)) {
error("%s does not point to a valid object!", entry->name); error("%s does not point to a valid object!", refname);
return 0; return 0;
} }
return 1; return 1;
} }
/*
* Return true if the reference described by entry can be resolved to
* an object in the database; otherwise, emit a warning and return
* false.
*/
static int entry_resolves_to_object(struct ref_entry *entry)
{
return ref_resolves_to_object(entry->name,
&entry->u.value.oid, entry->flag);
}
/* /*
* current_ref is a performance hack: when iterating over references * current_ref is a performance hack: when iterating over references
* using the for_each_ref*() functions, current_ref is set to the * using the for_each_ref*() functions, current_ref is set to the