diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-12-22 06:16:18 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-12-22 06:16:18 (GMT) |
commit | 0ce7a3a34cec0e625f63d46390a8c1d2e167494f (patch) | |
tree | b4de6a4570fc14109dcc2b2c4f5adc2b3be8d2af /Objects/odictobject.c | |
parent | 5af856404afc1b1e6b9dd4ac86a5771a407cbc6a (diff) | |
download | cpython-0ce7a3a34cec0e625f63d46390a8c1d2e167494f.zip cpython-0ce7a3a34cec0e625f63d46390a8c1d2e167494f.tar.gz cpython-0ce7a3a34cec0e625f63d46390a8c1d2e167494f.tar.bz2 |
Issue #25914: Fixed and simplified OrderedDict.__sizeof__.
Diffstat (limited to 'Objects/odictobject.c')
-rw-r--r-- | Objects/odictobject.c | 22 |
1 files changed, 1 insertions, 21 deletions
diff --git a/Objects/odictobject.c b/Objects/odictobject.c index 4e51f4d..c15b408 100644 --- a/Objects/odictobject.c +++ b/Objects/odictobject.c @@ -940,27 +940,7 @@ PyDoc_STRVAR(odict_sizeof__doc__, ""); static PyObject * odict_sizeof(PyODictObject *od) { - PyObject *pylong; - Py_ssize_t res, temp; - - pylong = _PyDict_SizeOf((PyDictObject *)od); - if (pylong == NULL) - return NULL; - res = PyLong_AsSsize_t(pylong); - Py_DECREF(pylong); - if (res == -1 && PyErr_Occurred()) - return NULL; - - /* instance dict */ - pylong = _PyDict_SizeOf((PyDictObject *)od->od_inst_dict); - if (pylong == NULL) - return NULL; - temp = PyLong_AsSsize_t(pylong); - Py_DECREF(pylong); - if (temp == -1 && PyErr_Occurred()) - return NULL; - res += temp; - + Py_ssize_t res = _PyDict_SizeOf((PyDictObject *)od); res += sizeof(_ODictNode *) * _odict_FAST_SIZE(od); /* od_fast_nodes */ if (!_odict_EMPTY(od)) { res += sizeof(_ODictNode) * PyODict_SIZE(od); /* linked-list */ |