diff options
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -890,11 +890,13 @@ ruby_strtod(string, endPtr) if (exp >= MDMAXEXPT) { errno = ERANGE; - return HUGE_VAL * (sign ? -1.0 : 1.0); + fraction = HUGE_VAL; + goto ret; } else if (exp < MDMINEXPT) { errno = ERANGE; - return 0.0 * (sign ? -1.0 : 1.0); + fraction = 0.0; + goto ret; } fracExp = exp; exp += 9; @@ -940,6 +942,7 @@ ruby_strtod(string, endPtr) fraction = frac1 + frac2; } + ret: if (endPtr != NULL) { *endPtr = (char *)p; } |