]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Removed PyOS_ascii_atof from marshal.c, as mentioned in issue 7117. Also brings it...
authorEric Smith <eric@trueblade.com>
Tue, 27 Oct 2009 19:42:57 +0000 (19:42 +0000)
committerEric Smith <eric@trueblade.com>
Tue, 27 Oct 2009 19:42:57 +0000 (19:42 +0000)
Python/marshal.c

index ca2f9aa10f9bb8f2f53bdbd8afcfedddcb39e1e6..865a0c88715a1ee994534eca93b0707e6e9eba65 100644 (file)
@@ -698,10 +698,9 @@ r_object(RFILE *p)
                                break;
                        }
                        buf[n] = '\0';
-                       retval = NULL;
-                       PyFPE_START_PROTECT("atof", break)
-                       dx = PyOS_ascii_atof(buf);
-                       PyFPE_END_PROTECT(dx)
+                       dx = PyOS_string_to_double(buf, NULL, NULL);
+                       if (dx == -1.0 && PyErr_Occurred())
+                               break;
                        retval = PyFloat_FromDouble(dx);
                        break;
                }
@@ -738,10 +737,9 @@ r_object(RFILE *p)
                                break;
                        }
                        buf[n] = '\0';
-                       retval = NULL;
-                       PyFPE_START_PROTECT("atof", break;)
-                       c.real = PyOS_ascii_atof(buf);
-                       PyFPE_END_PROTECT(c)
+                       c.real = PyOS_string_to_double(buf, NULL, NULL);
+                       if (c.real == -1.0 && PyErr_Occurred())
+                               break;
                        n = r_byte(p);
                        if (n == EOF || r_string(buf, (int)n, p) != n) {
                                PyErr_SetString(PyExc_EOFError,
@@ -750,9 +748,9 @@ r_object(RFILE *p)
                                break;
                        }
                        buf[n] = '\0';
-                       PyFPE_START_PROTECT("atof", break)
-                       c.imag = PyOS_ascii_atof(buf);
-                       PyFPE_END_PROTECT(c)
+                       c.imag = PyOS_string_to_double(buf, NULL, NULL);
+                       if (c.imag == -1.0 && PyErr_Occurred())
+                               break;
                        retval = PyComplex_FromCComplex(c);
                        break;
                }