mirror of
https://github.com/python/cpython.git
synced 2025-07-28 13:44:43 +00:00
Issue #5330: C functions called with keyword arguments were not reported by
the various profiling modules (profile, cProfile). Patch by Hagen Fürstenau.
This commit is contained in:
parent
2152ca390b
commit
46dbe27f7e
4 changed files with 40 additions and 2 deletions
|
@ -4160,10 +4160,17 @@ do_call(PyObject *func, PyObject ***pp_stack, int na, int nk)
|
|||
PCALL(PCALL_METHOD);
|
||||
else if (PyType_Check(func))
|
||||
PCALL(PCALL_TYPE);
|
||||
else if (PyCFunction_Check(func))
|
||||
PCALL(PCALL_CFUNCTION);
|
||||
else
|
||||
PCALL(PCALL_OTHER);
|
||||
#endif
|
||||
result = PyObject_Call(func, callargs, kwdict);
|
||||
if (PyCFunction_Check(func)) {
|
||||
PyThreadState *tstate = PyThreadState_GET();
|
||||
C_TRACE(result, PyCFunction_Call(func, callargs, kwdict));
|
||||
}
|
||||
else
|
||||
result = PyObject_Call(func, callargs, kwdict);
|
||||
call_fail:
|
||||
Py_XDECREF(callargs);
|
||||
Py_XDECREF(kwdict);
|
||||
|
@ -4248,10 +4255,17 @@ ext_do_call(PyObject *func, PyObject ***pp_stack, int flags, int na, int nk)
|
|||
PCALL(PCALL_METHOD);
|
||||
else if (PyType_Check(func))
|
||||
PCALL(PCALL_TYPE);
|
||||
else if (PyCFunction_Check(func))
|
||||
PCALL(PCALL_CFUNCTION);
|
||||
else
|
||||
PCALL(PCALL_OTHER);
|
||||
#endif
|
||||
result = PyObject_Call(func, callargs, kwdict);
|
||||
if (PyCFunction_Check(func)) {
|
||||
PyThreadState *tstate = PyThreadState_GET();
|
||||
C_TRACE(result, PyCFunction_Call(func, callargs, kwdict));
|
||||
}
|
||||
else
|
||||
result = PyObject_Call(func, callargs, kwdict);
|
||||
ext_call_fail:
|
||||
Py_XDECREF(callargs);
|
||||
Py_XDECREF(kwdict);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue