Message342759
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. |
|
Date |
User |
Action |
Args |
2019-05-17 19:50:54 | Kevin Shweh | set | recipients:
+ Kevin Shweh |
2019-05-17 19:50:54 | Kevin Shweh | set | messageid: <1558122654.3.0.508768199462.issue36951@roundup.psfhosted.org> |
2019-05-17 19:50:54 | Kevin Shweh | link | issue36951 messages |
2019-05-17 19:50:54 | Kevin Shweh | create | |
|