Mercurial > cpython-lru_cache-weakref
diff Modules/_elementtree.c @ 77485:093dec81ea1f
Issue #14055: Add __sizeof__ support to _elementtree.
| author | Martin v. Löwis <martin@v.loewis.de> |
|---|---|
| date | Sun, 17 Jun 2012 10:41:22 +0200 |
| parents | 3c089edbf02c |
| children | c8774ff45733 |
line wrap: on
line diff
--- a/Modules/_elementtree.c Sun Jun 17 10:40:16 2012 +0200 +++ b/Modules/_elementtree.c Sun Jun 17 10:41:22 2012 +0200 @@ -842,6 +842,19 @@ return NULL; } +static PyObject* +element_sizeof(PyObject* _self, PyObject* args) +{ + ElementObject *self = (ElementObject*)_self; + Py_ssize_t result = sizeof(ElementObject); + if (self->extra) { + result += sizeof(ElementObjectExtra); + if (self->extra->children != self->extra->_children) + result += sizeof(PyObject*) * self->extra->allocated; + } + return PyLong_FromSsize_t(result); +} + LOCAL(int) checkpath(PyObject* tag) { @@ -1609,6 +1622,7 @@ {"__copy__", (PyCFunction) element_copy, METH_VARARGS}, {"__deepcopy__", (PyCFunction) element_deepcopy, METH_VARARGS}, + {"__sizeof__", element_sizeof, METH_NOARGS}, {NULL, NULL} };
