FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

gh-95245: Document Py_TPFLAGS_PREHEADER by sergey-miryanov · Pull Request #135861 · python/cpython · GitHub

/ cpython Public
13 changes: 13 additions & 0 deletions Doc/c-api/typeobj.rst
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions Include/object.h
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
Loading

Back | FazBrowse Home | New Git URL