From 74eb66b98dd948ee7ae1219feca0863ec9579fde Mon Sep 17 00:00:00 2001 From: Irit Katriel Date: Fri, 3 Nov 2023 17:01:04 +0000 Subject: [PATCH] simplify code to pop exception in frame_setlineno --- Objects/frameobject.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Objects/frameobject.c b/Objects/frameobject.c index 170c1177069dca..5c7827b2d042ac 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -805,13 +805,10 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignore while (start_stack > best_stack) { if (top_of_stack(start_stack) == Except) { /* Pop exception stack as well as the evaluation stack */ - PyThreadState *tstate = _PyThreadState_GET(); - _PyErr_StackItem *exc_info = tstate->exc_info; - PyObject *value = exc_info->exc_value; PyObject *exc = _PyFrame_StackPop(f->f_frame); assert(PyExceptionInstance_Check(exc) || exc == Py_None); - exc_info->exc_value = exc; - Py_XDECREF(value); + PyThreadState *tstate = _PyThreadState_GET(); + Py_XSETREF(tstate->exc_info->exc_value, exc); } else { PyObject *v = _PyFrame_StackPop(f->f_frame);