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"
|
# error "this header file must not be included directly"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PyAPI_FUNC(PyObject *) _PyEval_CallTracing(PyObject *func, PyObject *args);
|
|
||||||
|
|
||||||
PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *);
|
PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *);
|
||||||
PyAPI_DATA(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
|
PyAPI_DATA(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
|
||||||
PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *);
|
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);
|
extern PyStatus _PyEval_ReInitThreads(PyThreadState *tstate);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Used by sys.call_tracing()
|
||||||
|
extern PyObject* _PyEval_CallTracing(PyObject *func, PyObject *args);
|
||||||
|
|
||||||
// Used by sys.get_asyncgen_hooks()
|
// Used by sys.get_asyncgen_hooks()
|
||||||
extern PyObject* _PyEval_GetAsyncGenFirstiter(void);
|
extern PyObject* _PyEval_GetAsyncGenFirstiter(void);
|
||||||
extern PyObject* _PyEval_GetAsyncGenFinalizer(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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PyObject *
|
PyObject*
|
||||||
_PyEval_CallTracing(PyObject *func, PyObject *args)
|
_PyEval_CallTracing(PyObject *func, PyObject *args)
|
||||||
{
|
{
|
||||||
|
// Save and disable tracing
|
||||||
PyThreadState *tstate = _PyThreadState_GET();
|
PyThreadState *tstate = _PyThreadState_GET();
|
||||||
int save_tracing = tstate->tracing;
|
int save_tracing = tstate->tracing;
|
||||||
int save_use_tracing = tstate->cframe->use_tracing;
|
int save_use_tracing = tstate->cframe->use_tracing;
|
||||||
PyObject *result;
|
|
||||||
|
|
||||||
tstate->tracing = 0;
|
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->tracing = save_tracing;
|
||||||
tstate->cframe->use_tracing = save_use_tracing;
|
tstate->cframe->use_tracing = save_use_tracing;
|
||||||
return result;
|
return result;
|
||||||
|
|
Loading…
Reference in New Issue