Commit 6cb0290b authored by Jeremy Hylton's avatar Jeremy Hylton

Add a second special case to the inline function call code in eval_code2().

If we have a PyCFunction (builtin) and it is METH_VARARGS only, load
the args and dispatch to call_cfunction() directly.  This provides a
small speedup for perhaps the most common function calls -- builtins.
parent 187aed69
......@@ -1969,7 +1969,13 @@ eval_code2(PyCodeObject *co, PyObject *globals, PyObject *locals,
callable object.
*/
if (PyCFunction_Check(func)) {
if (PyCFunction_GET_FLAGS(func) == 0) {
int flags = PyCFunction_GET_FLAGS(func);
if (flags == METH_VARARGS) {
PyObject *callargs;
callargs = load_args(&stack_pointer, na);
x = call_cfunction(func, callargs, NULL);
Py_XDECREF(callargs);
} else if (flags == 0) {
x = fast_cfunction(func,
&stack_pointer, na);
} else {
......
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