diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2014-12-16 17:40:58 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2014-12-16 17:40:58 (GMT) |
commit | 01bdd9a98070f12ad27611a37db91fd5ecae7358 (patch) | |
tree | c047ea336a43bbde51e83823a9d7c1ccd4c5fe40 /Modules/clinic | |
parent | f5553bbb0e8063363ab3312bf4f61718b32d1dc8 (diff) | |
parent | 5bbd231f27f254cd92ce543dca82f65c4d90f20d (diff) | |
download | cpython-01bdd9a98070f12ad27611a37db91fd5ecae7358.zip cpython-01bdd9a98070f12ad27611a37db91fd5ecae7358.tar.gz cpython-01bdd9a98070f12ad27611a37db91fd5ecae7358.tar.bz2 |
Issue #15513: Added a __sizeof__ implementation for pickle classes.
Diffstat (limited to 'Modules/clinic')
-rw-r--r-- | Modules/clinic/_pickle.c.h | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/Modules/clinic/_pickle.c.h b/Modules/clinic/_pickle.c.h index a20a61e..975298c 100644 --- a/Modules/clinic/_pickle.c.h +++ b/Modules/clinic/_pickle.c.h @@ -34,6 +34,33 @@ PyDoc_STRVAR(_pickle_Pickler_dump__doc__, #define _PICKLE_PICKLER_DUMP_METHODDEF \ {"dump", (PyCFunction)_pickle_Pickler_dump, METH_O, _pickle_Pickler_dump__doc__}, +PyDoc_STRVAR(_pickle_Pickler___sizeof____doc__, +"__sizeof__($self, /)\n" +"--\n" +"\n" +"Returns size in memory, in bytes."); + +#define _PICKLE_PICKLER___SIZEOF___METHODDEF \ + {"__sizeof__", (PyCFunction)_pickle_Pickler___sizeof__, METH_NOARGS, _pickle_Pickler___sizeof____doc__}, + +static Py_ssize_t +_pickle_Pickler___sizeof___impl(PicklerObject *self); + +static PyObject * +_pickle_Pickler___sizeof__(PicklerObject *self, PyObject *Py_UNUSED(ignored)) +{ + PyObject *return_value = NULL; + Py_ssize_t _return_value; + + _return_value = _pickle_Pickler___sizeof___impl(self); + if ((_return_value == -1) && PyErr_Occurred()) + goto exit; + return_value = PyLong_FromSsize_t(_return_value); + +exit: + return return_value; +} + PyDoc_STRVAR(_pickle_Pickler___init____doc__, "Pickler(file, protocol=None, fix_imports=True)\n" "--\n" @@ -191,6 +218,33 @@ exit: return return_value; } +PyDoc_STRVAR(_pickle_Unpickler___sizeof____doc__, +"__sizeof__($self, /)\n" +"--\n" +"\n" +"Returns size in memory, in bytes."); + +#define _PICKLE_UNPICKLER___SIZEOF___METHODDEF \ + {"__sizeof__", (PyCFunction)_pickle_Unpickler___sizeof__, METH_NOARGS, _pickle_Unpickler___sizeof____doc__}, + +static Py_ssize_t +_pickle_Unpickler___sizeof___impl(UnpicklerObject *self); + +static PyObject * +_pickle_Unpickler___sizeof__(UnpicklerObject *self, PyObject *Py_UNUSED(ignored)) +{ + PyObject *return_value = NULL; + Py_ssize_t _return_value; + + _return_value = _pickle_Unpickler___sizeof___impl(self); + if ((_return_value == -1) && PyErr_Occurred()) + goto exit; + return_value = PyLong_FromSsize_t(_return_value); + +exit: + return return_value; +} + PyDoc_STRVAR(_pickle_Unpickler___init____doc__, "Unpickler(file, *, fix_imports=True, encoding=\'ASCII\', errors=\'strict\')\n" "--\n" @@ -488,4 +542,4 @@ _pickle_loads(PyModuleDef *module, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=f965b6c7018c898d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3aba79576e240c62 input=a9049054013a1b77]*/ |