From 00709aaa3dc7da374e94a3ede8e05603e8a95066 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Wed, 4 Jun 2008 14:18:43 +0000 Subject: 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. ........ --- Objects/bytesobject.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'Objects/bytesobject.c') diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c index 3f22e7c772..ab6207be94 100644 --- a/Objects/bytesobject.c +++ b/Objects/bytesobject.c @@ -2784,6 +2784,17 @@ string_fromhex(PyObject *cls, PyObject *args) return NULL; } +PyDoc_STRVAR(sizeof__doc__, +"S.__sizeof__() -> size of S in memory, in bytes"); + +static PyObject * +string_sizeof(PyBytesObject *v) +{ + Py_ssize_t res; + res = sizeof(PyBytesObject) + Py_SIZE(v) * Py_TYPE(v)->tp_itemsize; + return PyLong_FromSsize_t(res); +} + static PyObject * string_getnewargs(PyBytesObject *v) @@ -2848,6 +2859,8 @@ string_methods[] = { translate__doc__}, {"upper", (PyCFunction)stringlib_upper, METH_NOARGS, _Py_upper__doc__}, {"zfill", (PyCFunction)stringlib_zfill, METH_VARARGS, zfill__doc__}, + {"__sizeof__", (PyCFunction)string_sizeof, METH_NOARGS, + sizeof__doc__}, {NULL, NULL} /* sentinel */ }; -- cgit v1.2.1