resolve_ref_1(): eliminate local variable "bad_name"
[gitweb.git] / refs / files-backend.c
index 60f149370abba16eb1bf8b0b206c5256457c9d5e..b865ba5221ed30346b7d23425a04b7956150c84c 100644 (file)
@@ -1399,19 +1399,17 @@ static const char *resolve_ref_1(const char *refname,
                                 struct strbuf *sb_path,
                                 struct strbuf *sb_contents)
 {
-       int bad_name = 0;
        int symref_count;
 
        *flags = 0;
 
        if (check_refname_format(refname, REFNAME_ALLOW_ONELEVEL)) {
-               *flags |= REF_BAD_NAME;
-
                if (!(resolve_flags & RESOLVE_REF_ALLOW_BAD_NAME) ||
                    !refname_is_safe(refname)) {
                        errno = EINVAL;
                        return NULL;
                }
+
                /*
                 * dwim_ref() uses REF_ISBROKEN to distinguish between
                 * missing refs and refs that were present but invalid,
@@ -1420,7 +1418,7 @@ static const char *resolve_ref_1(const char *refname,
                 * We don't know whether the ref exists, so don't set
                 * REF_ISBROKEN yet.
                 */
-               bad_name = 1;
+               *flags |= REF_BAD_NAME;
        }
 
        for (symref_count = 0; symref_count < MAXDEPTH; symref_count++) {
@@ -1452,7 +1450,7 @@ static const char *resolve_ref_1(const char *refname,
                                }
                                hashclr(sha1);
                        }
-                       if (bad_name) {
+                       if (*flags & REF_BAD_NAME) {
                                hashclr(sha1);
                                *flags |= REF_ISBROKEN;
                        }
@@ -1524,7 +1522,7 @@ static const char *resolve_ref_1(const char *refname,
                                errno = EINVAL;
                                return NULL;
                        }
-                       if (bad_name) {
+                       if (*flags & REF_BAD_NAME) {
                                hashclr(sha1);
                                *flags |= REF_ISBROKEN;
                        }
@@ -1548,8 +1546,7 @@ static const char *resolve_ref_1(const char *refname,
                                return NULL;
                        }
 
-                       *flags |= REF_ISBROKEN;
-                       bad_name = 1;
+                       *flags |= REF_ISBROKEN | REF_BAD_NAME;
                }
        }