]> granicus.if.org Git - python/commitdiff
Merged revisions 71963 via svnmerge from
authorMark Dickinson <dickinsm@gmail.com>
Sun, 26 Apr 2009 14:11:18 +0000 (14:11 +0000)
committerMark Dickinson <dickinsm@gmail.com>
Sun, 26 Apr 2009 14:11:18 +0000 (14:11 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r71963 | mark.dickinson | 2009-04-26 15:00:08 +0100 (Sun, 26 Apr 2009) | 2 lines

  Reset errno before both calls to PyOS_ascii_strtod, not just one.
........

Objects/complexobject.c

index 37d9888252e511b33a58f1d1b693f39eca5f5634..acd885b459ea854373ac183cde0a4b1a2ef4c5eb 100644 (file)
@@ -746,8 +746,6 @@ complex_subtype_from_string(PyTypeObject *type, PyObject *v)
                return NULL;
        }
 
-       errno = 0;
-
        /* position on first nonblank */
        start = s;
        while (*s && isspace(Py_CHARMASK(*s)))
@@ -782,6 +780,7 @@ complex_subtype_from_string(PyTypeObject *type, PyObject *v)
        */
 
        /* first look for forms starting with <float> */
+       errno = 0;
        z = PyOS_ascii_strtod(s, &end);
        if (end == s && errno == ENOMEM)
                return PyErr_NoMemory();
@@ -794,6 +793,7 @@ complex_subtype_from_string(PyTypeObject *type, PyObject *v)
                if (*s == '+' || *s == '-') {
                        /* <float><signed-float>j | <float><sign>j */
                        x = z;
+                       errno = 0;
                        y = PyOS_ascii_strtod(s, &end);
                        if (end == s && errno == ENOMEM)
                                return PyErr_NoMemory();