diff options
author | Stefan Krah <skrah@bytereef.org> | 2012-04-09 19:27:20 (GMT) |
---|---|---|
committer | Stefan Krah <skrah@bytereef.org> | 2012-04-09 19:27:20 (GMT) |
commit | e37f8b29fcba54807c5b60208b68de379a8dd01a (patch) | |
tree | 05685b39f0b95b1b6a26941bb401ef43c8cd258d /Modules/_decimal | |
parent | f69aef747a9a98eb130ed2e3b813ea4dfbfa1ae3 (diff) | |
download | cpython-e37f8b29fcba54807c5b60208b68de379a8dd01a.zip cpython-e37f8b29fcba54807c5b60208b68de379a8dd01a.tar.gz cpython-e37f8b29fcba54807c5b60208b68de379a8dd01a.tar.bz2 |
Issue #14520: Add __sizeof__() method to the Decimal object.
Diffstat (limited to 'Modules/_decimal')
-rw-r--r-- | Modules/_decimal/_decimal.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Modules/_decimal/_decimal.c b/Modules/_decimal/_decimal.c index c3d20df..d5bb52f 100644 --- a/Modules/_decimal/_decimal.c +++ b/Modules/_decimal/_decimal.c @@ -4340,6 +4340,19 @@ dec_reduce(PyObject *self, PyObject *dummy UNUSED) return result; } +/* __sizeof__ */ +static PyObject * +dec_sizeof(PyObject *v, PyObject *dummy UNUSED) +{ + Py_ssize_t res; + + res = sizeof(PyDecObject); + if (mpd_isdynamic_data(MPD(v))) { + res += MPD(v)->alloc * sizeof(mpd_uint_t); + } + return PyLong_FromSsize_t(res); +} + /* __trunc__ */ static PyObject * dec_trunc(PyObject *self, PyObject *dummy UNUSED) @@ -4503,6 +4516,7 @@ static PyMethodDef dec_methods [] = { "__floor__", dec_floor, METH_NOARGS, NULL }, { "__trunc__", dec_trunc, METH_NOARGS, NULL }, { "__complex__", dec_complex, METH_NOARGS, NULL }, + { "__sizeof__", dec_sizeof, METH_NOARGS, NULL }, { NULL, NULL, 1 } }; |