Commit 79d6e8de authored by Serhiy Storchaka's avatar Serhiy Storchaka

Issue #26802: Optimized calling a function with *args only positional arguments.

Patch by Joe Jevnik.
parent 5bfe0da8
......@@ -4890,6 +4890,21 @@ update_star_args(int nstack, int nstar, PyObject *stararg,
{
PyObject *callargs, *w;
if (!nstack) {
if (!stararg) {
/* There are no positional arguments on the stack and there is no
sequence to be unpacked. */
return PyTuple_New(0);
}
if (PyTuple_CheckExact(stararg)) {
/* No arguments are passed on the stack and the sequence is not a
tuple subclass so we can just pass the stararg tuple directly
to the function. */
Py_INCREF(stararg);
return stararg;
}
}
callargs = PyTuple_New(nstack + nstar);
if (callargs == NULL) {
return NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment