diff options
-rw-r--r-- | Objects/floatobject.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Objects/floatobject.c b/Objects/floatobject.c index 36e861e..924b312 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -202,12 +202,16 @@ PyFloat_AsDouble(PyObject *op) if (op && PyFloat_Check(op)) return PyFloat_AS_DOUBLE((PyFloatObject*) op); - if (op == NULL || (nb = op->ob_type->tp_as_number) == NULL || - nb->nb_float == NULL) { + if (op == NULL) { PyErr_BadArgument(); return -1; } + if ((nb = op->ob_type->tp_as_number) == NULL || nb->nb_float == NULL) { + PyErr_SetString(PyExc_TypeError, "a float is required"); + return -1; + } + fo = (PyFloatObject*) (*nb->nb_float) (op); if (fo == NULL) return -1; |