diff options
author | Mark Shannon <mark@hotpy.org> | 2024-04-02 11:59:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-02 11:59:21 +0100 |
commit | c32dc47aca6e8fac152699bc613e015c44ccdba9 (patch) | |
tree | e183f7c56ad5e081879c3dd75f7e11887fe7e26c /Objects/object_layout_313.gv | |
parent | c97d3af2391e62ef456ef2365d48ab9b8cdbe27b (diff) | |
download | cpython-c32dc47aca6e8fac152699bc613e015c44ccdba9.tar.gz cpython-c32dc47aca6e8fac152699bc613e015c44ccdba9.zip |
GH-115776: Embed the values array into the object, for "normal" Python objects. (GH-116115)
Diffstat (limited to 'Objects/object_layout_313.gv')
-rw-r--r-- | Objects/object_layout_313.gv | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Objects/object_layout_313.gv b/Objects/object_layout_313.gv new file mode 100644 index 00000000000..d85352876f2 --- /dev/null +++ b/Objects/object_layout_313.gv @@ -0,0 +1,45 @@ +digraph ideal { + + rankdir = "LR" + + + object [ + shape = none + label = <<table border="0" cellspacing="0"> + <tr><td><b>object</b></td></tr> + <tr><td port="w" border="1">weakrefs</td></tr> + <tr><td port="dv" border="1">dict pointer</td></tr> + <tr><td border="1" >GC info 0</td></tr> + <tr><td border="1" >GC info 1</td></tr> + <tr><td port="r" border="1" >refcount</td></tr> + <tr><td port="h" border="1" >__class__</td></tr> + <tr><td border="1">values flags</td></tr> + <tr><td port="0" border="1">values[0]</td></tr> + <tr><td border="1">values[1]</td></tr> + <tr><td border="1">...</td></tr> + <tr><td border="1">Insertion order</td></tr> + </table>> + + ] + + class [ + shape = none + label = <<table border="0" cellspacing="0"> + <tr><td><b>class</b></td></tr> + <tr><td port="head" bgcolor="lightgreen" border="1">...</td></tr> + <tr><td border="1" bgcolor="lightgreen">dict_offset</td></tr> + <tr><td border="1" bgcolor="lightgreen">...</td></tr> + <tr><td port="k" border="1" bgcolor="lightgreen">cached_keys</td></tr> + </table>> + ] + + keys [label = "dictionary keys"; fillcolor="lightgreen"; style="filled"] + NULL [ label = " NULL"; shape="plain"] + object:w -> NULL + object:h -> class:head + object:dv -> NULL + class:k -> keys + + oop [ label = "pointer"; shape="plain"] + oop -> object:r +} |