mirror of
https://github.com/python/cpython.git
synced 2025-09-12 11:46:52 +00:00
GH-93516: Store offset of first traceable instruction in code object (GH-93769)
This commit is contained in:
parent
2bf74753c1
commit
3cd1a5d3ec
6 changed files with 53 additions and 52 deletions
|
@ -20,6 +20,9 @@ from generate_global_objects import get_identifiers_and_strings
|
|||
verbose = False
|
||||
identifiers, strings = get_identifiers_and_strings()
|
||||
|
||||
# This must be kept in sync with opcode.py
|
||||
RESUME = 151
|
||||
|
||||
def isprintable(b: bytes) -> bool:
|
||||
return all(0x20 <= c < 0x7f for c in b)
|
||||
|
||||
|
@ -267,6 +270,10 @@ class Printer:
|
|||
self.write(f".co_qualname = {co_qualname},")
|
||||
self.write(f".co_linetable = {co_linetable},")
|
||||
self.write(f".co_code_adaptive = {co_code_adaptive},")
|
||||
for i, op in enumerate(code.co_code[::2]):
|
||||
if op == RESUME:
|
||||
self.write(f"._co_firsttraceable = {i},")
|
||||
break
|
||||
name_as_code = f"(PyCodeObject *)&{name}"
|
||||
self.deallocs.append(f"_PyStaticCode_Dealloc({name_as_code});")
|
||||
self.interns.append(f"_PyStaticCode_InternStrings({name_as_code})")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue