From: Guido van Rossum Date: Fri, 19 Jan 2001 02:11:59 +0000 (+0000) Subject: Fix for the bug in complex() just reported by Ping. X-Git-Tag: v2.1a1~137 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8dabbf149e351c801a7d3b65891c49949be8251c;p=python Fix for the bug in complex() just reported by Ping. --- diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 3acd0e2b46..ca9f3124ae 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -591,12 +591,18 @@ builtin_complex(PyObject *self, PyObject *args) } } else { - tmp = (*nbr->nb_float)(r); + tmp = PyNumber_Float(r); if (own_r) { Py_DECREF(r); } if (tmp == NULL) return NULL; + if (!PyFloat_Check(tmp)) { + PyErr_SetString(PyExc_TypeError, + "float(r) didn't return a float"); + Py_DECREF(tmp); + return NULL; + } cr.real = PyFloat_AsDouble(tmp); Py_DECREF(tmp); cr.imag = 0.0;