Mercurial > cpython-lru_cache-weakref
diff Objects/typeobject.c @ 47466:58f4b60773fe
Merged revisions 63856-63857,63859-63860 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r63856 | robert.schuppenies | 2008-06-01 18:16:17 +0200 (So, 01 Jun 2008) | 2 lines
Issue #2898: Added sys.getsizeof() to retrieve size of objects in bytes.
........
r63859 | georg.brandl | 2008-06-01 18:42:16 +0200 (So, 01 Jun 2008) | 2 lines
Some style nits. Also clarify in the docstrings what __sizeof__ does.
........
r63860 | georg.brandl | 2008-06-01 19:05:56 +0200 (So, 01 Jun 2008) | 2 lines
Fix test_descrtut.
........
| author | Martin v. Löwis <martin@v.loewis.de> |
|---|---|
| date | Wed, 04 Jun 2008 14:18:43 +0000 |
| parents | 23ab586c427a |
| children | 98827a21e352 |
line wrap: on
line diff
--- a/Objects/typeobject.c Wed Jun 04 14:03:46 2008 +0000 +++ b/Objects/typeobject.c Wed Jun 04 14:18:43 2008 +0000 @@ -3275,6 +3275,20 @@ return result; } +static PyObject * +object_sizeof(PyObject *self, PyObject *args) +{ + Py_ssize_t res, isize; + + res = 0; + isize = self->ob_type->tp_itemsize; + if (isize > 0) + res = Py_SIZE(self->ob_type) * isize; + res += self->ob_type->tp_basicsize; + + return PyLong_FromSsize_t(res); +} + static PyMethodDef object_methods[] = { {"__reduce_ex__", object_reduce_ex, METH_VARARGS, PyDoc_STR("helper for pickle")}, @@ -3284,6 +3298,8 @@ object_subclasshook_doc}, {"__format__", object_format, METH_VARARGS, PyDoc_STR("default object formatter")}, + {"__sizeof__", object_sizeof, METH_NOARGS, + PyDoc_STR("__sizeof__() -> size of object in memory, in bytes")}, {0} };
