Serhiy Storchaka added the comment:

* 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?

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue29259>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to