diff options
author | Brandt Bucher <brandtbucher@microsoft.com> | 2023-08-25 19:12:59 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-25 19:12:59 (GMT) |
commit | 4eae1e53425d3a816a26760f28d128a4f05c1da4 (patch) | |
tree | b75367832f4000daea61bf066b21eaece5a2858f /Python/executor_cases.c.h | |
parent | 5f41376e93cdeb1a4714b0f08b5921b69e345dd6 (diff) | |
download | cpython-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.h | 10 |
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; |