diff --git a/ChangeLog b/ChangeLog index 3d0f19dc04..7528cef919 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,7 @@ -Thu Mar 15 15:04:41 2012 Nobuyoshi Nakada +Thu Mar 15 15:04:54 2012 Nobuyoshi Nakada + + * util.c (ruby_strtod): no need to check same digit for hexdigit + twice. [ruby-dev:45363][Bug #6146] * parse.y (sym_check_asciionly): check ascii compatibility before scanning for code range. diff --git a/util.c b/util.c index 39ec3e9783..fca9e67541 100644 --- a/util.c +++ b/util.c @@ -1977,8 +1977,11 @@ break2: nd0 = -4; if (!*++s || !(s1 = strchr(hexdigit, *s))) goto ret0; - while (*s == '0') s++; - if ((s1 = strchr(hexdigit, *s)) != NULL) { + if (*s == '0') { + while (*++s == '0'); + s1 = strchr(hexdigit, *s); + } + if (s1 != NULL) { do { adj += aadj * ((s1 - hexdigit) & 15); nd0 += 4;