Message 285400 - Python tracker (original) (raw)
- If a type only defines tp_fastcall: tp_fastcall is always use (tp_call uses the wrapper)
Is tp_call set to the wrapper rather then inheriting? What if tp_call is defined in a superclass?
- If a type defines tp_call and tp_fastcall, PyObject_Call() uses tp_call whereas _PyObject_FastCallDict() uses tp_fastcall.
I would consider this as a bug. It would be weird if different ways of calling cause executing different code.
What about dynamically changed Python types? What if you set or delete the call attribute of Python class?