From 233b8782886939176982a90f563d552757cbf34e Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 25 Jul 2023 13:01:02 -0700 Subject: [PATCH] gh-107082: Fix instruction size computation for ENTER_EXECUTOR (#107256) Co-authored-by: Victor Stinner --- Python/instrumentation.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Python/instrumentation.c b/Python/instrumentation.c index e1b62bb32ec..c3515d2c5a3 100644 --- a/Python/instrumentation.c +++ b/Python/instrumentation.c @@ -276,6 +276,13 @@ _PyInstruction_GetLength(PyCodeObject *code, int offset) } assert(opcode != 0); assert(!is_instrumented(opcode)); + if (opcode == ENTER_EXECUTOR) { + int exec_index = _PyCode_CODE(code)[offset].op.arg; + _PyExecutorObject *exec = code->co_executors->executors[exec_index]; + opcode = exec->vm_data.opcode; + + } + assert(opcode != ENTER_EXECUTOR); assert(opcode == _PyOpcode_Deopt[opcode]); return 1 + _PyOpcode_Caches[opcode]; }