mirror of https://github.com/python/cpython
bpo-46850: Remove _PyEval_CallTracing() function (GH-32019)
Remove the private undocumented function _PyEval_CallTracing() from the C API. Call the public sys.call_tracing() function instead.
This commit is contained in:
parent
9087243e2c
commit
e63894b3ee
|
@ -2,8 +2,6 @@
|
|||
# error "this header file must not be included directly"
|
||||
#endif
|
||||
|
||||
PyAPI_FUNC(PyObject *) _PyEval_CallTracing(PyObject *func, PyObject *args);
|
||||
|
||||
PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *);
|
||||
PyAPI_DATA(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
|
||||
PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *);
|
||||
|
|
|
@ -34,6 +34,9 @@ PyAPI_FUNC(void) _PyEval_SignalAsyncExc(PyInterpreterState *interp);
|
|||
extern PyStatus _PyEval_ReInitThreads(PyThreadState *tstate);
|
||||
#endif
|
||||
|
||||
// Used by sys.call_tracing()
|
||||
extern PyObject* _PyEval_CallTracing(PyObject *func, PyObject *args);
|
||||
|
||||
// Used by sys.get_asyncgen_hooks()
|
||||
extern PyObject* _PyEval_GetAsyncGenFirstiter(void);
|
||||
extern PyObject* _PyEval_GetAsyncGenFinalizer(void);
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
Remove the private undocumented function ``_PyEval_CallTracing()`` from the
|
||||
C API. Call the public :func:`sys.call_tracing` function instead. Patch by
|
||||
Victor Stinner.
|
|
@ -6708,16 +6708,19 @@ call_trace(Py_tracefunc func, PyObject *obj,
|
|||
return result;
|
||||
}
|
||||
|
||||
PyObject *
|
||||
PyObject*
|
||||
_PyEval_CallTracing(PyObject *func, PyObject *args)
|
||||
{
|
||||
// Save and disable tracing
|
||||
PyThreadState *tstate = _PyThreadState_GET();
|
||||
int save_tracing = tstate->tracing;
|
||||
int save_use_tracing = tstate->cframe->use_tracing;
|
||||
PyObject *result;
|
||||
|
||||
tstate->tracing = 0;
|
||||
result = PyObject_Call(func, args, NULL);
|
||||
|
||||
// Call the tracing function
|
||||
PyObject *result = PyObject_Call(func, args, NULL);
|
||||
|
||||
// Restore tracing
|
||||
tstate->tracing = save_tracing;
|
||||
tstate->cframe->use_tracing = save_use_tracing;
|
||||
return result;
|
||||
|
|
Loading…
Reference in New Issue