gh-107082: Fix instruction size computation for ENTER_EXECUTOR (#107256)

Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
Guido van Rossum 2023-07-25 13:01:02 -07:00 committed by GitHub
parent 698b015135
commit 233b878288
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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];
}