@@ -7,14 +7,14 @@ Each Python object starts with two fields:
7
7
* ob_refcnt
8
8
* ob_type
9
9
10
- which the form the header common to all Python objects, for all versions,
10
+ which form the header common to all Python objects, for all versions,
11
11
and hold the reference count and class of the object, respectively.
12
12
13
13
## Pre-header
14
14
15
15
Since the introduction of the cycle GC, there has also been a pre-header.
16
16
Before 3.11, this pre-header was two words in size.
17
- It should be considered opaque to all code except the cycle GC.
17
+ It should be considered opaque to all of the code except the cycle GC.
18
18
19
19
## 3.11 pre-header
20
20
@@ -36,7 +36,7 @@ and the ``dict`` field points to the dictionary.
36
36
37
37
## 3.12 pre-header
38
38
39
- In 3.12 the the pointer to the list of weak references is added to the
39
+ In 3.12, the pointer to the list of weak references is added to the
40
40
pre-header. In order to make space for it, the `` dict `` and `` values ``
41
41
pointers are combined into a single tagged pointer:
42
42
@@ -62,7 +62,7 @@ the values pointer, to enable the (legacy) C-API function
62
62
* ob_refcnt
63
63
* ob_type
64
64
65
- For a "normal" Python object, that is one that doesn't inherit from a builtin
65
+ For a "normal" Python object, i.e., the one that doesn't inherit from a builtin
66
66
class or have slots, the header and pre-header form the entire object.
67
67
68
68
![ Layout of "normal" object in 3.12] ( ./object_layout_312.png )
0 commit comments