summaryrefslogtreecommitdiffstats
path: root/Tools/build
diff options
context:
space:
mode:
authorSam Gross <colesbury@gmail.com>2023-10-30 16:06:09 (GMT)
committerGitHub <noreply@github.com>2023-10-30 16:06:09 (GMT)
commit6dfb8fe0236718e9afc8136ff2b58dcfbc182022 (patch)
tree1b5ad337bc68ebc2ff1325c0b695807c48640d30 /Tools/build
parent05f2f0ac92afa560315eb66fd6576683c7f69e2d (diff)
downloadcpython-6dfb8fe0236718e9afc8136ff2b58dcfbc182022.zip
cpython-6dfb8fe0236718e9afc8136ff2b58dcfbc182022.tar.gz
cpython-6dfb8fe0236718e9afc8136ff2b58dcfbc182022.tar.bz2
gh-110481: Implement biased reference counting (gh-110764)
Diffstat (limited to 'Tools/build')
-rw-r--r--Tools/build/deepfreeze.py9
1 files changed, 3 insertions, 6 deletions
diff --git a/Tools/build/deepfreeze.py b/Tools/build/deepfreeze.py
index c3231a5..fed7cf3 100644
--- a/Tools/build/deepfreeze.py
+++ b/Tools/build/deepfreeze.py
@@ -115,6 +115,7 @@ class Printer:
self.inits: list[str] = []
self.identifiers, self.strings = self.get_identifiers_and_strings()
self.write('#include "Python.h"')
+ self.write('#include "internal/pycore_object.h"')
self.write('#include "internal/pycore_gc.h"')
self.write('#include "internal/pycore_code.h"')
self.write('#include "internal/pycore_frame.h"')
@@ -154,14 +155,10 @@ class Printer:
self.write("}" + suffix)
def object_head(self, typename: str) -> None:
- with self.block(".ob_base =", ","):
- self.write(f".ob_refcnt = _Py_IMMORTAL_REFCNT,")
- self.write(f".ob_type = &{typename},")
+ self.write(f".ob_base = _PyObject_HEAD_INIT(&{typename}),")
def object_var_head(self, typename: str, size: int) -> None:
- with self.block(".ob_base =", ","):
- self.object_head(typename)
- self.write(f".ob_size = {size},")
+ self.write(f".ob_base = _PyVarObject_HEAD_INIT(&{typename}, {size}),")
def field(self, obj: object, name: str) -> None:
self.write(f".{name} = {getattr(obj, name)},")