summaryrefslogtreecommitdiffstats
path: root/Python/executor_cases.c.h
diff options
context:
space:
mode:
authorBrandt Bucher <brandtbucher@microsoft.com>2023-08-25 19:12:59 (GMT)
committerGitHub <noreply@github.com>2023-08-25 19:12:59 (GMT)
commit4eae1e53425d3a816a26760f28d128a4f05c1da4 (patch)
treeb75367832f4000daea61bf066b21eaece5a2858f /Python/executor_cases.c.h
parent5f41376e93cdeb1a4714b0f08b5921b69e345dd6 (diff)
downloadcpython-4eae1e53425d3a816a26760f28d128a4f05c1da4.zip
cpython-4eae1e53425d3a816a26760f28d128a4f05c1da4.tar.gz
cpython-4eae1e53425d3a816a26760f28d128a4f05c1da4.tar.bz2
GH-106581: Fix instrumentation in tier 2 (GH-108493)
Diffstat (limited to 'Python/executor_cases.c.h')
-rw-r--r--Python/executor_cases.c.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h
index 85c60c2..1283cc7 100644
--- a/Python/executor_cases.c.h
+++ b/Python/executor_cases.c.h
@@ -8,17 +8,19 @@
}
case RESUME: {
- #if TIER_ONE
assert(frame == tstate->current_frame);
/* Possibly combine this with eval breaker */
if (_PyFrame_GetCode(frame)->_co_instrumentation_version != tstate->interp->monitoring_version) {
int err = _Py_Instrument(_PyFrame_GetCode(frame), tstate->interp);
if (err) goto error;
+ #if TIER_ONE
next_instr--;
+ #endif
+ #if TIER_TWO
+ goto deoptimize;
+ #endif
}
- else
- #endif
- if (oparg < 2) {
+ else if (oparg < 2) {
CHECK_EVAL_BREAKER();
}
break;