diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2016-12-09 14:26:00 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2016-12-09 14:26:00 (GMT) |
commit | f561634c82aaeb3aa60dcd2f1e2878f998d9f501 (patch) | |
tree | 2944bf6d83a1c7ad9f22738d40daee25c408c342 /Modules/_elementtree.c | |
parent | 56707648120de77a5167c363cc4104dfe2cef5be (diff) | |
download | cpython-f561634c82aaeb3aa60dcd2f1e2878f998d9f501.zip cpython-f561634c82aaeb3aa60dcd2f1e2878f998d9f501.tar.gz cpython-f561634c82aaeb3aa60dcd2f1e2878f998d9f501.tar.bz2 |
Use _PyObject_CallMethodIdObjArgs() in _elementtree
Issue #28915: Replace _PyObject_CallMethodId() with
_PyObject_CallMethodIdObjArgs() when the format string was only made of "O"
formats, PyObject* arguments.
_PyObject_CallMethodIdObjArgs() avoids the creation of a temporary tuple and
doesn't have to parse a format string.
Diffstat (limited to 'Modules/_elementtree.c')
-rw-r--r-- | Modules/_elementtree.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c index 2e0cda7..8678c0a 100644 --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -1171,8 +1171,8 @@ _elementtree_Element_find_impl(ElementObject *self, PyObject *path, if (checkpath(path) || namespaces != Py_None) { _Py_IDENTIFIER(find); - return _PyObject_CallMethodId( - st->elementpath_obj, &PyId_find, "OOO", self, path, namespaces + return _PyObject_CallMethodIdObjArgs( + st->elementpath_obj, &PyId_find, self, path, namespaces, NULL ); } @@ -1216,8 +1216,9 @@ _elementtree_Element_findtext_impl(ElementObject *self, PyObject *path, elementtreestate *st = ET_STATE_GLOBAL; if (checkpath(path) || namespaces != Py_None) - return _PyObject_CallMethodId( - st->elementpath_obj, &PyId_findtext, "OOOO", self, path, default_value, namespaces + return _PyObject_CallMethodIdObjArgs( + st->elementpath_obj, &PyId_findtext, + self, path, default_value, namespaces, NULL ); if (!self->extra) { @@ -1271,8 +1272,8 @@ _elementtree_Element_findall_impl(ElementObject *self, PyObject *path, if (checkpath(tag) || namespaces != Py_None) { _Py_IDENTIFIER(findall); - return _PyObject_CallMethodId( - st->elementpath_obj, &PyId_findall, "OOO", self, tag, namespaces + return _PyObject_CallMethodIdObjArgs( + st->elementpath_obj, &PyId_findall, self, tag, namespaces, NULL ); } @@ -1318,8 +1319,8 @@ _elementtree_Element_iterfind_impl(ElementObject *self, PyObject *path, _Py_IDENTIFIER(iterfind); elementtreestate *st = ET_STATE_GLOBAL; - return _PyObject_CallMethodId( - st->elementpath_obj, &PyId_iterfind, "OOO", self, tag, namespaces); + return _PyObject_CallMethodIdObjArgs( + st->elementpath_obj, &PyId_iterfind, self, tag, namespaces, NULL); } /*[clinic input] @@ -2440,7 +2441,7 @@ treebuilder_add_subelement(PyObject *element, PyObject *child) } else { PyObject *res; - res = _PyObject_CallMethodId(element, &PyId_append, "O", child); + res = _PyObject_CallMethodIdObjArgs(element, &PyId_append, child, NULL); if (res == NULL) return -1; Py_DECREF(res); |