From: Thomas Wouters Date: Wed, 27 Jun 2001 13:09:44 +0000 (+0000) Subject: Backport Jeremy's checkin 2.244: X-Git-Tag: v2.1.1c1~56 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7a5b674721161bdc60d375cde69b9372539f9191;p=thirdparty%2FPython%2Fcpython.git Backport Jeremy's checkin 2.244: 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. --- diff --git a/Python/ceval.c b/Python/ceval.c index b6686b6e1bf8..64dbf983c8aa 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -1941,7 +1941,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 {