Issue #25421: __sizeof__ methods of builtin types now use dynamic basic size.

This allows sys.getsize() to work correctly with their subclasses with
__slots__ defined.
This commit is contained in:
Serhiy Storchaka 2015-12-19 20:07:11 +02:00
commit a9406e77fa
19 changed files with 54 additions and 22 deletions

View file

@ -2563,7 +2563,7 @@ _PyDict_SizeOf(PyDictObject *mp)
Py_ssize_t size, res;
size = DK_SIZE(mp->ma_keys);
res = sizeof(PyDictObject);
res = _PyObject_SIZE(Py_TYPE(mp));
if (mp->ma_values)
res += size * sizeof(PyObject*);
/* If the dictionary is split, the keys portion is accounted-for