From a1aaf9ae03eed459c7089346cd6d03b44028719f Mon Sep 17 00:00:00 2001 From: Irit Katriel Date: Wed, 16 Aug 2023 15:35:11 +0100 Subject: [PATCH] GH-93516: match logic of codeobject.c in _co_firsttraceable calculation --- Tools/build/deepfreeze.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Tools/build/deepfreeze.py b/Tools/build/deepfreeze.py index ce609bd0898741..3296d44cba0e8b 100644 --- a/Tools/build/deepfreeze.py +++ b/Tools/build/deepfreeze.py @@ -297,10 +297,12 @@ def generate_code(self, name: str, code: types.CodeType) -> str: self.write(f".co_linetable = {co_linetable},") self.write(f"._co_cached = NULL,") self.write(f".co_code_adaptive = {co_code_adaptive},") - for i, op in enumerate(code.co_code[::2]): + first_traceable = 0 + for op in code.co_code[::2]: if op == RESUME: - self.write(f"._co_firsttraceable = {i},") break + first_traceable += 1 + self.write(f"._co_firsttraceable = {first_traceable},") name_as_code = f"(PyCodeObject *)&{name}" self.finis.append(f"_PyStaticCode_Fini({name_as_code});") self.inits.append(f"_PyStaticCode_Init({name_as_code})")