]> granicus.if.org Git - python/commitdiff
complex_coerce(): add explicit PyComplex_Check() test. Previously,
authorGuido van Rossum <guido@python.org>
Wed, 19 Sep 2001 01:13:10 +0000 (01:13 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 19 Sep 2001 01:13:10 +0000 (01:13 +0000)
complex_coerce() would never be called with a complex argument,
because PyNumber_Coerce[Ex] doesn't bother calling the type's coercion
method if the values already have the same type.  But now, of course,
it's possible to pass an instance of a complex *subtype*, and those
must be accepted.

Objects/complexobject.c

index a8419e31ae5f23917aa6e0eb90e327d55922fe7a..a2ccadb78ad67f43999bdbd690335ff0e4ec9214 100644 (file)
@@ -538,6 +538,11 @@ complex_coerce(PyObject **pv, PyObject **pw)
                Py_INCREF(*pv);
                return 0;
        }
+       else if (PyComplex_Check(*pw)) {
+               Py_INCREF(*pv);
+               Py_INCREF(*pw);
+               return 0;
+       }
        return 1; /* Can't do it */
 }