MyInt.__basicsize__ + MyInt.__itemsize__ * ndigits
)
+ # GH-117195 -- This shouldn't crash
+ object.__sizeof__(1)
if __name__ == "__main__":
unittest.main()
--- /dev/null
+Avoid assertion failure for debug builds when calling
+``object.__sizeof__(1)``
res = 0;
isize = Py_TYPE(self)->tp_itemsize;
- if (isize > 0)
- res = Py_SIZE(self) * isize;
+ if (isize > 0) {
+ /* This assumes that ob_size is valid if tp_itemsize is not 0,
+ which isn't true for PyLongObject. */
+ res = _PyVarObject_CAST(self)->ob_size * isize;
+ }
res += Py_TYPE(self)->tp_basicsize;
return PyLong_FromSsize_t(res);