mirror of
https://github.com/git/git.git
synced 2024-11-23 18:05:29 +08:00
resolve_ref_unsafe(): handle the case of an SHA-1 within loop
There is only one "break" statement within the loop, which jumps to the code after the loop that handles the case of a file that holds a SHA-1. So move that code from below the loop into the if statement where the break was previously located. This makes the logic flow more local. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
47f534bf92
commit
2884c06ae7
22
refs.c
22
refs.c
@ -1300,8 +1300,19 @@ const char *resolve_ref_unsafe(const char *refname, unsigned char *sha1, int rea
|
||||
/*
|
||||
* Is it a symbolic ref?
|
||||
*/
|
||||
if (prefixcmp(buffer, "ref:"))
|
||||
break;
|
||||
if (prefixcmp(buffer, "ref:")) {
|
||||
/*
|
||||
* Please note that FETCH_HEAD has a second
|
||||
* line containing other data.
|
||||
*/
|
||||
if (get_sha1_hex(buffer, sha1) ||
|
||||
(buffer[40] != '\0' && !isspace(buffer[40]))) {
|
||||
if (flag)
|
||||
*flag |= REF_ISBROKEN;
|
||||
return NULL;
|
||||
}
|
||||
return refname;
|
||||
}
|
||||
if (flag)
|
||||
*flag |= REF_ISSYMREF;
|
||||
buf = buffer + 4;
|
||||
@ -1314,13 +1325,6 @@ const char *resolve_ref_unsafe(const char *refname, unsigned char *sha1, int rea
|
||||
}
|
||||
refname = strcpy(refname_buffer, buf);
|
||||
}
|
||||
/* Please note that FETCH_HEAD has a second line containing other data. */
|
||||
if (get_sha1_hex(buffer, sha1) || (buffer[40] != '\0' && !isspace(buffer[40]))) {
|
||||
if (flag)
|
||||
*flag |= REF_ISBROKEN;
|
||||
return NULL;
|
||||
}
|
||||
return refname;
|
||||
}
|
||||
|
||||
char *resolve_refdup(const char *ref, unsigned char *sha1, int reading, int *flag)
|
||||
|
Loading…
Reference in New Issue
Block a user