diff Objects/floatobject.c @ 26272:fbccef8b3153 legacy-trunk

Improve exception message raised by PyFloat_AsDouble if the object does not have a nb_float slot. This matches what PyInt_AsLong does.
author Neil Schemenauer <nascheme@enme.ucalgary.ca>
date Mon, 18 Nov 2002 16:06:21 +0000
parents a869d2de536f
children d31ddc66b1b5
line wrap: on
line diff
--- a/Objects/floatobject.c	Mon Nov 18 16:04:52 2002 +0000
+++ b/Objects/floatobject.c	Mon Nov 18 16:06:21 2002 +0000
@@ -202,12 +202,16 @@
 	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;