https://github.com/python/cpython/commit/5baa7a0de03714246167a43b7fd2a256c4175302
commit: 5baa7a0de03714246167a43b7fd2a256c4175302
branch: main
author: Sergey Miryanov <[email protected]>
committer: encukou <[email protected]>
date: 2025-08-25T12:15:51+02:00
summary:

gh-95245: Document Py_TPFLAGS_PREHEADER (GH-135861)


Co-authored-by: Peter Bierma <[email protected]>

files:
M Doc/c-api/typeobj.rst
M Include/object.h

diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst
index 060d6f60174b41..8bd3144f88aa71 100644
--- a/Doc/c-api/typeobj.rst
+++ b/Doc/c-api/typeobj.rst
@@ -1286,6 +1286,19 @@ and :c:data:`PyType_Type` effectively act as defaults.)
       :c:member:`~PyTypeObject.tp_weaklistoffset` field is set in a superclass.
 
 
+   .. c:macro:: Py_TPFLAGS_PREHEADER
+
+      These bits indicate that the VM will manage some fields by storing them
+      before the object. Currently, this macro is equivalent to
+      :c:expr:`Py_TPFLAGS_MANAGED_DICT | Py_TPFLAGS_MANAGED_WEAKREF`.
+
+      This macro value relies on the implementation of the VM, so its value is 
not
+      stable and may change in a future version. Prefer using individual
+      flags instead.
+
+      .. versionadded:: 3.12
+
+
    .. c:macro:: Py_TPFLAGS_ITEMS_AT_END
 
       Only usable with variable-size types, i.e. ones with non-zero
diff --git a/Include/object.h b/Include/object.h
index b1bcc9481871b4..8979ac7dd095a4 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -550,6 +550,9 @@ given type object has a specified feature.
  */
 #define Py_TPFLAGS_MANAGED_DICT (1 << 4)
 
+/* Type has dictionary or weakref pointers that are managed by VM and has
+ * to allocate space to store these.
+ */
 #define Py_TPFLAGS_PREHEADER (Py_TPFLAGS_MANAGED_WEAKREF | 
Py_TPFLAGS_MANAGED_DICT)
 
 /* Set if instances of the type object are treated as sequences for pattern 
matching */

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to