mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
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:
parent
efd7b34d7c
commit
5c4064e8bd
19 changed files with 54 additions and 22 deletions
|
@ -4015,7 +4015,7 @@ _pickle_Pickler___sizeof___impl(PicklerObject *self)
|
|||
{
|
||||
Py_ssize_t res, s;
|
||||
|
||||
res = sizeof(PicklerObject);
|
||||
res = _PyObject_SIZE(Py_TYPE(self));
|
||||
if (self->memo != NULL) {
|
||||
res += sizeof(PyMemoTable);
|
||||
res += self->memo->mt_allocated * sizeof(PyMemoEntry);
|
||||
|
@ -6418,7 +6418,7 @@ _pickle_Unpickler___sizeof___impl(UnpicklerObject *self)
|
|||
{
|
||||
Py_ssize_t res;
|
||||
|
||||
res = sizeof(UnpicklerObject);
|
||||
res = _PyObject_SIZE(Py_TYPE(self));
|
||||
if (self->memo != NULL)
|
||||
res += self->memo_size * sizeof(PyObject *);
|
||||
if (self->marks != NULL)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue