summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--util.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 3d0f19d..7528cef 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,7 @@
-Thu Mar 15 15:04:41 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Mar 15 15:04:54 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * 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 39ec3e9..fca9e67 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;