summaryrefslogtreecommitdiffstats
path: root/Python/marshal.c
diff options
context:
space:
mode:
authorEric Smith <eric@trueblade.com>2009-10-27 19:42:57 (GMT)
committerEric Smith <eric@trueblade.com>2009-10-27 19:42:57 (GMT)
commitb218d289e6f5ceeb7979528d5c10bfcfb378b0b6 (patch)
tree0f325585e5ff80760f8e30c567e12e6c188f567d /Python/marshal.c
parent0df2c73d6cbacc7ed7b78ea7ae049d1396066596 (diff)
downloadcpython-b218d289e6f5ceeb7979528d5c10bfcfb378b0b6.zip
cpython-b218d289e6f5ceeb7979528d5c10bfcfb378b0b6.tar.gz
cpython-b218d289e6f5ceeb7979528d5c10bfcfb378b0b6.tar.bz2
Removed PyOS_ascii_atof from marshal.c, as mentioned in issue 7117. Also brings it more in line with py3k.
Diffstat (limited to 'Python/marshal.c')
-rw-r--r--Python/marshal.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/Python/marshal.c b/Python/marshal.c
index ca2f9aa..865a0c8 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -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;
}