36 lines
1.2 KiB
Diff
36 lines
1.2 KiB
Diff
? NSK1200002852A
|
|
Index: generic/tclStrToD.c
|
|
===================================================================
|
|
RCS file: /cvsroot/tcl/tcl/generic/tclStrToD.c,v
|
|
retrieving revision 1.39
|
|
diff -u -r1.39 tclStrToD.c
|
|
--- generic/tclStrToD.c 7 Dec 2009 17:15:33 -0000 1.39
|
|
+++ generic/tclStrToD.c 19 Feb 2010 02:42:35 -0000
|
|
@@ -110,7 +110,6 @@
|
|
static int mantBits; /* Number of bits in a double's significand */
|
|
static mp_int pow5[9]; /* Table of powers of 5**(2**n), up to
|
|
* 5**256 */
|
|
-static double tiny; /* The smallest representable double */
|
|
static int maxDigits; /* The maximum number of digits to the left of
|
|
* the decimal point of a double. */
|
|
static int minDigits; /* The maximum number of digits to the right
|
|
@@ -1490,8 +1489,8 @@
|
|
goto returnValue;
|
|
}
|
|
retval = SafeLdExp(retval, machexp);
|
|
- if (retval < tiny) {
|
|
- retval = tiny;
|
|
+ if (retval == 0.0) {
|
|
+ retval = SafeLdExp(1.0, DBL_MIN_EXP * log2FLT_RADIX - mantBits);
|
|
}
|
|
|
|
/*
|
|
@@ -2245,7 +2244,6 @@
|
|
* the significand of a double.
|
|
*/
|
|
|
|
- tiny = SafeLdExp(1.0, DBL_MIN_EXP * log2FLT_RADIX - mantBits);
|
|
maxDigits = (int) ((DBL_MAX_EXP * log((double) FLT_RADIX)
|
|
+ 0.5 * log(10.)) / log(10.));
|
|
minDigits = (int) floor((DBL_MIN_EXP - DBL_MANT_DIG)
|