diff options
author | Victor Stinner <vstinner@python.org> | 2020-03-20 16:46:56 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-20 16:46:56 (GMT) |
commit | 6723e933c4d90a408cf3818362a0e4de6d84c932 (patch) | |
tree | fd3c18220235a2ad81a97a1a4728cb145c4fe4c8 /Python | |
parent | fd1e1a18fa3befe5b6eeac32e0561e15c7e5164b (diff) | |
download | cpython-6723e933c4d90a408cf3818362a0e4de6d84c932.zip cpython-6723e933c4d90a408cf3818362a0e4de6d84c932.tar.gz cpython-6723e933c4d90a408cf3818362a0e4de6d84c932.tar.bz2 |
bpo-39946: Remove _PyThreadState_GetFrame (GH-19094)
Remove _PyRuntime.getframe hook and remove _PyThreadState_GetFrame
macro which was an alias to _PyRuntime.getframe. They were only
exposed by the internal C API. Remove also PyThreadFrameGetter type.
Diffstat (limited to 'Python')
-rw-r--r-- | Python/ceval.c | 17 | ||||
-rw-r--r-- | Python/pystate.c | 16 | ||||
-rw-r--r-- | Python/traceback.c | 2 |
3 files changed, 7 insertions, 28 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index c80ee4b..836457d 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -4825,25 +4825,18 @@ _PyEval_GetAsyncGenFinalizer(void) return tstate->async_gen_finalizer; } -static PyFrameObject * -_PyEval_GetFrame(PyThreadState *tstate) -{ - _PyRuntimeState *runtime = tstate->interp->runtime; - return runtime->gilstate.getframe(tstate); -} - PyFrameObject * PyEval_GetFrame(void) { PyThreadState *tstate = _PyThreadState_GET(); - return _PyEval_GetFrame(tstate); + return tstate->frame; } PyObject * PyEval_GetBuiltins(void) { PyThreadState *tstate = _PyThreadState_GET(); - PyFrameObject *current_frame = _PyEval_GetFrame(tstate); + PyFrameObject *current_frame = tstate->frame; if (current_frame == NULL) return tstate->interp->builtins; else @@ -4869,7 +4862,7 @@ PyObject * PyEval_GetLocals(void) { PyThreadState *tstate = _PyThreadState_GET(); - PyFrameObject *current_frame = _PyEval_GetFrame(tstate); + PyFrameObject *current_frame = tstate->frame; if (current_frame == NULL) { _PyErr_SetString(tstate, PyExc_SystemError, "frame does not exist"); return NULL; @@ -4887,7 +4880,7 @@ PyObject * PyEval_GetGlobals(void) { PyThreadState *tstate = _PyThreadState_GET(); - PyFrameObject *current_frame = _PyEval_GetFrame(tstate); + PyFrameObject *current_frame = tstate->frame; if (current_frame == NULL) { return NULL; } @@ -4900,7 +4893,7 @@ int PyEval_MergeCompilerFlags(PyCompilerFlags *cf) { PyThreadState *tstate = _PyThreadState_GET(); - PyFrameObject *current_frame = _PyEval_GetFrame(tstate); + PyFrameObject *current_frame = tstate->frame; int result = cf->cf_flags != 0; if (current_frame != NULL) { diff --git a/Python/pystate.c b/Python/pystate.c index eea666b..6331a85 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -546,13 +546,6 @@ PyInterpreterState_GetDict(PyInterpreterState *interp) return interp->dict; } -/* Default implementation for _PyThreadState_GetFrame */ -static struct _frame * -threadstate_getframe(PyThreadState *self) -{ - return self->frame; -} - static PyThreadState * new_threadstate(PyInterpreterState *interp, int init) { @@ -562,10 +555,6 @@ new_threadstate(PyInterpreterState *interp, int init) return NULL; } - if (_PyThreadState_GetFrame == NULL) { - _PyThreadState_GetFrame = threadstate_getframe; - } - tstate->interp = interp; tstate->frame = NULL; @@ -1000,9 +989,6 @@ PyInterpreterState * PyThreadState_GetInterpreter(PyThreadState *tstate) { assert(tstate != NULL); - if (tstate == NULL) { - return NULL; - } return tstate->interp; } @@ -1011,7 +997,7 @@ struct _frame* PyThreadState_GetFrame(PyThreadState *tstate) { assert(tstate != NULL); - return _PyThreadState_GetFrame(tstate); + return tstate->frame; } diff --git a/Python/traceback.c b/Python/traceback.c index 8aaee12..f88ba1d 100644 --- a/Python/traceback.c +++ b/Python/traceback.c @@ -801,7 +801,7 @@ dump_traceback(int fd, PyThreadState *tstate, int write_header) PUTS(fd, "Stack (most recent call first):\n"); } - frame = _PyThreadState_GetFrame(tstate); + frame = tstate->frame; if (frame == NULL) { PUTS(fd, "<no Python frame>\n"); return; |