summaryrefslogtreecommitdiffstats
path: root/Objects/abstract.c
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2001-09-10 21:28:20 (GMT)
committerTim Peters <tim.peters@gmail.com>2001-09-10 21:28:20 (GMT)
commit7a50f2536e59762897a05b1d3996e51f3f1a9686 (patch)
treef4108edcb9db12a21759f9ed10c30c28c2ca5340 /Objects/abstract.c
parentc6249e9fef66057a1f89b8d4d6bcd5c0e1cfc217 (diff)
downloadcpython-7a50f2536e59762897a05b1d3996e51f3f1a9686.zip
cpython-7a50f2536e59762897a05b1d3996e51f3f1a9686.tar.gz
cpython-7a50f2536e59762897a05b1d3996e51f3f1a9686.tar.bz2
More for SF bug [#460020] bug or feature: unicode() and subclasses
Repair float constructor to return a true float when passed a subclass instance. New PyFloat_CheckExact macro.
Diffstat (limited to 'Objects/abstract.c')
-rw-r--r--Objects/abstract.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Objects/abstract.c b/Objects/abstract.c
index 2bd0fcc..37f7eea 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -909,10 +909,14 @@ PyNumber_Float(PyObject *o)
if (o == NULL)
return null_error();
- if (PyFloat_Check(o)) {
+ if (PyFloat_CheckExact(o)) {
Py_INCREF(o);
return o;
}
+ if (PyFloat_Check(o)) {
+ PyFloatObject *po = (PyFloatObject *)o;
+ return PyFloat_FromDouble(po->ob_fval);
+ }
if (!PyString_Check(o)) {
m = o->ob_type->tp_as_number;
if (m && m->nb_float)