diff options
Diffstat (limited to 'Objects/bytesobject.c')
-rw-r--r-- | Objects/bytesobject.c | 13 |
1 files changed, 13 insertions, 0 deletions
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 */ }; |