• Victor Stinner's avatar
    bpo-37194: Add a new public PyObject_CallNoArgs() function (GH-13890) · 2ff58a24
    Victor Stinner authored
    Add a new public PyObject_CallNoArgs() function to the C API: call a
    callable Python object without any arguments.
    
    It is the most efficient way to call a callback without any argument.
    On x86-64, for example, PyObject_CallFunctionObjArgs(func, NULL)
    allocates 960 bytes on the stack per call, whereas
    PyObject_CallNoArgs(func) only allocates 624 bytes per call.
    
    It is excluded from stable ABI 3.8.
    
    Replace private _PyObject_CallNoArg() with public
    PyObject_CallNoArgs() in C extensions: _asyncio, _datetime,
    _elementtree, _pickle, _tkinter and readline.
    2ff58a24
_pickle.c 228 KB