diff Python/bltinmodule.c @ 16011:d90eeab5f9a4 legacy-trunk

Fix for the bug in complex() just reported by Ping.
author Guido van Rossum <guido@python.org>
date Fri, 19 Jan 2001 02:11:59 +0000
parents 1f92d63b20f0
children 7234d7c3c29f
line wrap: on
line diff
--- a/Python/bltinmodule.c	Fri Jan 19 00:44:41 2001 +0000
+++ b/Python/bltinmodule.c	Fri Jan 19 02:11:59 2001 +0000
@@ -591,12 +591,18 @@
 		}
 	}
 	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;