Tcl Source Code

Artifact [ab39d39b9b]
Login

Artifact ab39d39b9b72efe7a6235977adafa29dbd86eac3:

Attachment "2952904.patch" to ticket [2952904fff] added by kennykb 2010-02-19 09:52:42.
? 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)