◐ Shell
clean mode source ↗

bpo-38140: Make dict and weakref offsets opaque for C heap types by eduardo-elizondo · Pull Request #16076 · python/cpython

This makes tp_dictoffset and tp_weaklistoffset completely opaque for C heap allocated types created through PyType_FromSpec.

The type system already provides a way to pass in readonly primitive types. This uses that mechanism to pass in the offset values through the two keywords: __dictoffset__ and __weaklistoffset__. This then extends the type system to sniff for these values to set the offsets into the type.

To provide uniformity, the passed in member types are required to have a T_PYSSIZET as well as being READONLY

https://bugs.python.org/issue38140