summaryrefslogtreecommitdiffstats
path: root/Objects/typeobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/typeobject.c')
-rw-r--r--Objects/typeobject.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index e495251..f814333 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -5153,15 +5153,15 @@ inherit_slots(PyTypeObject *type, PyTypeObject *base)
COPYSLOT(tp_repr);
/* tp_hash see tp_richcompare */
{
- /* Inherit tp_vectorcall_offset only if tp_call is not overridden */
- if (!type->tp_call) {
- COPYSLOT(tp_vectorcall_offset);
- }
- /* Inherit_Py_TPFLAGS_HAVE_VECTORCALL for non-heap types
+ /* Always inherit tp_vectorcall_offset to support PyVectorcall_Call().
+ * If _Py_TPFLAGS_HAVE_VECTORCALL is not inherited, then vectorcall
+ * won't be used automatically. */
+ COPYSLOT(tp_vectorcall_offset);
+
+ /* Inherit _Py_TPFLAGS_HAVE_VECTORCALL for non-heap types
* if tp_call is not overridden */
if (!type->tp_call &&
(base->tp_flags & _Py_TPFLAGS_HAVE_VECTORCALL) &&
- !(type->tp_flags & _Py_TPFLAGS_HAVE_VECTORCALL) &&
!(type->tp_flags & Py_TPFLAGS_HEAPTYPE))
{
type->tp_flags |= _Py_TPFLAGS_HAVE_VECTORCALL;