From: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> The return value of handle_missing_loose_ref() was either NULL to signify an error or the input parameter refname on success. So instead of returning a string, just return a 0 on success or -1 on error, so the reader doesn't have to wonder what string the return value points at. Signed-off-by: Michael Haggerty <mhagger@xxxxxxxxxxxx> --- refs.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/refs.c b/refs.c index ffd45e9..ceba23c 100644 --- a/refs.c +++ b/refs.c @@ -1370,10 +1370,10 @@ static struct ref_entry *get_packed_ref(const char *refname) * A loose ref file doesn't exist; check for a packed ref. The * options are forwarded from resolve_safe_unsafe(). */ -static const char *handle_missing_loose_ref(const char *refname, - unsigned char *sha1, - int reading, - int *flag) +static int handle_missing_loose_ref(const char *refname, + unsigned char *sha1, + int reading, + int *flag) { struct ref_entry *entry; @@ -1386,14 +1386,14 @@ static const char *handle_missing_loose_ref(const char *refname, hashcpy(sha1, entry->u.value.sha1); if (flag) *flag |= REF_ISPACKED; - return refname; + return 0; } /* The reference is not a packed reference, either. */ if (reading) { - return NULL; + return -1; } else { hashclr(sha1); - return refname; + return 0; } } @@ -1437,10 +1437,12 @@ const char *resolve_ref_unsafe(const char *refname, unsigned char *sha1, int rea */ stat_ref: if (lstat(path, &st) < 0) { - if (errno == ENOENT) - return handle_missing_loose_ref(refname, sha1, - reading, flag); - else + if (errno == ENOENT) { + if (handle_missing_loose_ref(refname, sha1, + reading, flag)) + return NULL; + return refname; + } else return NULL; } -- 2.1.1 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html