This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Kevin Shweh
Recipients Kevin Shweh
Date 2019-05-17.19:50:54
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1558122654.3.0.508768199462.issue36951@roundup.psfhosted.org>
In-reply-to
Content
In Objects/typeobject.c, the PyMemberDefs for __flags__, __weakrefoffset__, and __dictoffset__ all use T_LONG:

    {"__flags__", T_LONG, offsetof(PyTypeObject, tp_flags), READONLY},
    {"__weakrefoffset__", T_LONG,
     offsetof(PyTypeObject, tp_weaklistoffset), READONLY},
    ...
    {"__dictoffset__", T_LONG,
     offsetof(PyTypeObject, tp_dictoffset), READONLY},

    {"__weakrefoffset__", T_LONG,
     offsetof(PyTypeObject, tp_weaklistoffset), READONLY},

but in Include/object.h or Include/cpython/object.h, the corresponding struct members have types unsigned long, Py_ssize_t, and Py_ssize_t respectively:

    /* Flags to define presence of optional/expanded features */
    unsigned long tp_flags;
    ...
    /* weak reference enabler */
    Py_ssize_t tp_weaklistoffset;
    ...
    Py_ssize_t tp_dictoffset;

These uses of T_LONG should be changed to T_ULONG and T_PYSSIZE_T.

This was checked on 3.7.3 and master.
History
Date User Action Args
2019-05-17 19:50:54Kevin Shwehsetrecipients: + Kevin Shweh
2019-05-17 19:50:54Kevin Shwehsetmessageid: <1558122654.3.0.508768199462.issue36951@roundup.psfhosted.org>
2019-05-17 19:50:54Kevin Shwehlinkissue36951 messages
2019-05-17 19:50:54Kevin Shwehcreate