зеркало из https://github.com/github/ruby.git
str2big_scan_digits: do not goto into a branch
I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor.
This commit is contained in:
Родитель
4dfc2f2e3d
Коммит
5a7c0dd038
7
bignum.c
7
bignum.c
|
@ -3771,12 +3771,12 @@ str2big_scan_digits(const char *s, const char *str, int base, int badcheck, size
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
if (badcheck && *str == '_') goto bad;
|
||||
if (badcheck && *str == '_') return FALSE;
|
||||
|
||||
while ((c = *str++) != 0) {
|
||||
if (c == '_') {
|
||||
if (nondigit) {
|
||||
if (badcheck) goto bad;
|
||||
if (badcheck) return FALSE;
|
||||
break;
|
||||
}
|
||||
nondigit = (char) c;
|
||||
|
@ -3791,7 +3791,7 @@ str2big_scan_digits(const char *s, const char *str, int base, int badcheck, size
|
|||
}
|
||||
if (len > 0 && !--len) break;
|
||||
}
|
||||
if (badcheck && nondigit) goto bad;
|
||||
if (badcheck && nondigit) return FALSE;
|
||||
if (badcheck && len) {
|
||||
str--;
|
||||
while (*str && ISSPACE(*str)) {
|
||||
|
@ -3799,7 +3799,6 @@ str2big_scan_digits(const char *s, const char *str, int base, int badcheck, size
|
|||
if (len > 0 && !--len) break;
|
||||
}
|
||||
if (len && *str) {
|
||||
bad:
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче