summaryrefslogtreecommitdiffstats
path: root/Python/bytecodes.c
diff options
context:
space:
mode:
authorIrit Katriel <1055913+iritkatriel@users.noreply.github.com>2024-05-21 20:42:51 (GMT)
committerGitHub <noreply@github.com>2024-05-21 20:42:51 (GMT)
commit6e9863d7a3516cc76d6ce13923b15620499f3855 (patch)
tree06894f78bbed5cb71c0180e1f9355939a622d7a4 /Python/bytecodes.c
parentb64182550f73e556344bd754d32e3be5d22a74e1 (diff)
downloadcpython-6e9863d7a3516cc76d6ce13923b15620499f3855.zip
cpython-6e9863d7a3516cc76d6ce13923b15620499f3855.tar.gz
cpython-6e9863d7a3516cc76d6ce13923b15620499f3855.tar.bz2
gh-118692: Avoid creating unnecessary StopIteration instances for monitoring (#119216)
Diffstat (limited to 'Python/bytecodes.c')
-rw-r--r--Python/bytecodes.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c
index 55eda97..434eb80 100644
--- a/Python/bytecodes.c
+++ b/Python/bytecodes.c
@@ -292,11 +292,9 @@ dummy_func(
/* Need to create a fake StopIteration error here,
* to conform to PEP 380 */
if (PyGen_Check(receiver)) {
- PyErr_SetObject(PyExc_StopIteration, value);
- if (monitor_stop_iteration(tstate, frame, this_instr)) {
+ if (monitor_stop_iteration(tstate, frame, this_instr, value)) {
ERROR_NO_POP();
}
- PyErr_SetRaisedException(NULL);
}
DECREF_INPUTS();
}
@@ -307,11 +305,9 @@ dummy_func(
tier1 inst(INSTRUMENTED_END_SEND, (receiver, value -- value)) {
if (PyGen_Check(receiver) || PyCoro_CheckExact(receiver)) {
- PyErr_SetObject(PyExc_StopIteration, value);
- if (monitor_stop_iteration(tstate, frame, this_instr)) {
+ if (monitor_stop_iteration(tstate, frame, this_instr, value)) {
ERROR_NO_POP();
}
- PyErr_SetRaisedException(NULL);
}
Py_DECREF(receiver);
}