summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS8
-rw-r--r--Objects/abstract.c4
2 files changed, 11 insertions, 1 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 5e0bad4..19752f0 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -89,6 +89,10 @@ Core and builtins
Extension modules
-----------------
+- operator.isNumberType() now checks that the object has a nb_int or
+ nb_float slot, rather than simply checking whether it has a non-NULL
+ tp_as_number pointer.
+
- The imp module now has ways to acquire and release the "import
lock": imp.acquire_lock() and imp.release_lock(). Note: this is a
reentrant lock, so releasing the lock only truly releases it when
@@ -318,6 +322,10 @@ Build
C API
-----
+- PyNumber_Check() now checks that the object has a nb_int or nb_float
+ slot, rather than simply checking whether it has a non-NULL
+ tp_as_number pointer.
+
- A C type that inherits from a base type that defines tp_as_buffer
will now inherit the tp_as_buffer pointer if it doesn't define one.
(SF #681367)
diff --git a/Objects/abstract.c b/Objects/abstract.c
index c18d5e7..b4fbd32 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -308,7 +308,9 @@ int PyObject_AsWriteBuffer(PyObject *obj,
int
PyNumber_Check(PyObject *o)
{
- return o && o->ob_type->tp_as_number;
+ return o && o->ob_type->tp_as_number &&
+ (o->ob_type->tp_as_number->nb_int ||
+ o->ob_type->tp_as_number->nb_float);
}
/* Binary operators */