diff options
author | Tim Peters <tim.peters@gmail.com> | 2001-09-10 21:28:20 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2001-09-10 21:28:20 (GMT) |
commit | 7a50f2536e59762897a05b1d3996e51f3f1a9686 (patch) | |
tree | f4108edcb9db12a21759f9ed10c30c28c2ca5340 /Objects/abstract.c | |
parent | c6249e9fef66057a1f89b8d4d6bcd5c0e1cfc217 (diff) | |
download | cpython-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.c | 6 |
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) |