Skip to content

Commit 6f9877e

Browse files
committed
Fix a problem in CLEANUP_ASYNC_THROW I think.
1 parent bb59a0f commit 6f9877e

File tree

3 files changed

+18
-20
lines changed

3 files changed

+18
-20
lines changed

Modules/_testinternalcapi/test_cases.c.h

Lines changed: 8 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/bytecodes.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1605,14 +1605,14 @@ dummy_func(
16051605
}
16061606

16071607
inst(CLEANUP_ASYNC_THROW, (iter, exc_value_st -- value)) {
1608-
PyObject *exc_value = PyStackRef_AsPyObjectSteal(exc_value_st);
1608+
PyObject *exc_value = PyStackRef_AsPyObjectBorrow(exc_value_st);
16091609
assert(exc_value != NULL);
16101610
assert(PyExceptionInstance_Check(exc_value));
16111611

16121612
int matches = PyErr_GivenExceptionMatches(exc_value, PyExc_StopAsyncIteration);
16131613
if (matches) {
1614-
DECREF_INPUTS();
16151614
value = PyStackRef_FromPyObjectNew(((PyStopAsyncIterationObject *)exc_value)->value);
1615+
DECREF_INPUTS();
16161616
}
16171617
else {
16181618
_PyErr_SetRaisedException(tstate, exc_value);

Python/generated_cases.c.h

Lines changed: 8 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)