diff Objects/bytesobject.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 21beb0d5e329
children 2284fa89ab08
line wrap: on
line diff
--- a/Objects/bytesobject.c	Wed Jun 04 14:03:46 2008 +0000
+++ b/Objects/bytesobject.c	Wed Jun 04 14:18:43 2008 +0000
@@ -2784,6 +2784,17 @@
 	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 @@
 	 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 */
 };