From: Nguyễn Thái Ngọc Duy <pclo...@gmail.com>

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 <mhag...@alum.mit.edu>
---
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to