diff options
author | Victor Stinner <vstinner@python.org> | 2020-04-06 12:07:02 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-06 12:07:02 (GMT) |
commit | 38aefc585f60a77d66f4fbe5a37594a488b53474 (patch) | |
tree | 142fb1765e421b36ee746a6a5f53b0d52161b2c2 /Include/internal/pycore_object.h | |
parent | 08050e959e6c40839cd2c9e5f6a4fd1513e3d605 (diff) | |
download | cpython-38aefc585f60a77d66f4fbe5a37594a488b53474.zip cpython-38aefc585f60a77d66f4fbe5a37594a488b53474.tar.gz cpython-38aefc585f60a77d66f4fbe5a37594a488b53474.tar.bz2 |
bpo-40170: PyObject_GET_WEAKREFS_LISTPTR() becomes a function (GH-19377)
Convert the PyObject_GET_WEAKREFS_LISTPTR() macro to a function to
hide implementation details: the macro accessed directly to the
PyTypeObject.tp_weaklistoffset member.
Add _PyObject_GET_WEAKREFS_LISTPTR() static inline function to the
internal C API.
Diffstat (limited to 'Include/internal/pycore_object.h')
-rw-r--r-- | Include/internal/pycore_object.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h index 10a5746..002b700 100644 --- a/Include/internal/pycore_object.h +++ b/Include/internal/pycore_object.h @@ -87,6 +87,13 @@ extern void _Py_PrintReferences(FILE *); extern void _Py_PrintReferenceAddresses(FILE *); #endif +static inline PyObject ** +_PyObject_GET_WEAKREFS_LISTPTR(PyObject *op) +{ + Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset; + return (PyObject **)((char *)op + offset); +} + #ifdef __cplusplus } #endif |