bpo-39573: Use Py_TYPE() macro in object.c (GH-18398)

Replace direct acccess to PyVarObject.ob_size with usage of the
Py_SIZE() macro.
This commit is contained in:
Victor Stinner 2020-02-07 11:18:33 +01:00 committed by GitHub
parent bec4186c67
commit c65b320a95
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1041,13 +1041,11 @@ _PyObject_GetDictPtr(PyObject *obj)
if (dictoffset == 0)
return NULL;
if (dictoffset < 0) {
Py_ssize_t tsize;
size_t size;
tsize = ((PyVarObject *)obj)->ob_size;
if (tsize < 0)
Py_ssize_t tsize = Py_SIZE(obj);
if (tsize < 0) {
tsize = -tsize;
size = _PyObject_VAR_SIZE(tp, tsize);
}
size_t size = _PyObject_VAR_SIZE(tp, tsize);
dictoffset += (long)size;
_PyObject_ASSERT(obj, dictoffset > 0);
@ -1219,13 +1217,11 @@ _PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject *name,
dictoffset = tp->tp_dictoffset;
if (dictoffset != 0) {
if (dictoffset < 0) {
Py_ssize_t tsize;
size_t size;
tsize = ((PyVarObject *)obj)->ob_size;
if (tsize < 0)
Py_ssize_t tsize = Py_SIZE(obj);
if (tsize < 0) {
tsize = -tsize;
size = _PyObject_VAR_SIZE(tp, tsize);
}
size_t size = _PyObject_VAR_SIZE(tp, tsize);
_PyObject_ASSERT(obj, size <= PY_SSIZE_T_MAX);
dictoffset += (Py_ssize_t)size;