summaryrefslogtreecommitdiffstats
path: root/Python/generated_cases.c.h
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2025-01-21 09:33:23 (GMT)
committerGitHub <noreply@github.com>2025-01-21 09:33:23 (GMT)
commit7239da75592081b6e8d0917a2cd2bf19907c8165 (patch)
treef7736a473d3889513a4b0a31ad543d177808de40 /Python/generated_cases.c.h
parentf7cc7d296c2cbb33d3f0bde4ace82e8569f7dbc3 (diff)
downloadcpython-7239da75592081b6e8d0917a2cd2bf19907c8165.zip
cpython-7239da75592081b6e8d0917a2cd2bf19907c8165.tar.gz
cpython-7239da75592081b6e8d0917a2cd2bf19907c8165.tar.bz2
GH-127953: Make line number lookup O(1) regardless of the size of the code object (GH-128350)
Diffstat (limited to 'Python/generated_cases.c.h')
-rw-r--r--Python/generated_cases.c.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h
index ec3397e..f25c9a9 100644
--- a/Python/generated_cases.c.h
+++ b/Python/generated_cases.c.h
@@ -4809,8 +4809,9 @@
if (tstate->tracing) {
PyCodeObject *code = _PyFrame_GetCode(frame);
_PyFrame_SetStackPointer(frame, stack_pointer);
- original_opcode = code->_co_monitoring->lines[(int)(this_instr - _PyFrame_GetBytecode(frame))].original_opcode;
+ int index = (int)(this_instr - _PyFrame_GetBytecode(frame));
stack_pointer = _PyFrame_GetStackPointer(frame);
+ original_opcode = code->_co_monitoring->lines->data[index*code->_co_monitoring->lines->bytes_per_entry];
next_instr = this_instr;
} else {
_PyFrame_SetStackPointer(frame, stack_pointer);