summaryrefslogtreecommitdiff
path: root/Modules/_elementtree.c
Commit message (Collapse)AuthorAgeFilesLines
* Run Argument Clinic: METH_VARARGS=>METH_FASTCALLVictor Stinner2017-01-171-1/+1
| | | | | | | | Issue #29286. Run Argument Clinic to get the new faster METH_FASTCALL calling convention for functions using "boring" positional arguments. Manually fix _elementtree: _elementtree_XMLParser_doctype() must remain consistent with the clinic code.
* Merge from 3.6.Serhiy Storchaka2016-12-211-0/+2
|\
| * Merge from 3.5.Serhiy Storchaka2016-12-211-0/+2
| |\
| | * Issue #28871: Fixed a crash when deallocate deep ElementTree.Serhiy Storchaka2016-12-211-0/+2
| | |
* | | Issue #28959: Added private macro PyDict_GET_SIZE for retrieving the size of ↵Serhiy Storchaka2016-12-161-1/+1
| | | | | | | | | | | | dict.
* | | Use PyObject_CallFunctionObjArgs()Victor Stinner2016-12-091-8/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | Issue #28915: Replace PyObject_CallFunction() with PyObject_CallFunctionObjArgs() when the format string was only made of "O" formats, PyObject* arguments. PyObject_CallFunctionObjArgs() avoids the creation of a temporary tuple and doesn't have to parse a format string.
* | | Use _PyObject_CallMethodIdObjArgs() in _elementtreeVictor Stinner2016-12-091-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Issue #28858: Remove _PyObject_CallArg1() macroVictor Stinner2016-12-051-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace _PyObject_CallArg1(func, arg) with PyObject_CallFunctionObjArgs(func, arg, NULL) Using the _PyObject_CallArg1() macro increases the usage of the C stack, which was unexpected and unwanted. PyObject_CallFunctionObjArgs() doesn't have this issue.
* | | Backed out changeset b9c9691c72c5Victor Stinner2016-12-041-1/+1
| | | | | | | | | | | | | | | | | | Issue #28858: The change b9c9691c72c5 introduced a regression. It seems like _PyObject_CallArg1() uses more stack memory than PyObject_CallFunctionObjArgs().
* | | Replace PyObject_CallFunction() with fastcallVictor Stinner2016-12-011-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace PyObject_CallFunction(func, "O", arg) and PyObject_CallFunction(func, "O", arg, NULL) with _PyObject_CallArg1(func, arg) Replace PyObject_CallFunction(func, NULL) with _PyObject_CallNoArg(func) _PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate memory on the C stack.
* | | Replace PyObject_CallFunctionObjArgs() with fastcallVictor Stinner2016-12-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * PyObject_CallFunctionObjArgs(func, NULL) => _PyObject_CallNoArg(func) * PyObject_CallFunctionObjArgs(func, arg, NULL) => _PyObject_CallArg1(func, arg) PyObject_CallFunctionObjArgs() allocates 40 bytes on the C stack and requires extra work to "parse" C arguments to build a C array of PyObject*. _PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate memory on the C stack. This change is part of the fastcall project. The change on listsort() is related to the issue #23507.
* | | Added the const qualifier to char* variables that refer to readonly internalSerhiy Storchaka2016-11-201-1/+1
|/ / | | | | | | UTF-8 represenatation of Unicode objects.
* | Issue #28701: Replace PyUnicode_CompareWithASCIIString with ↵Serhiy Storchaka2016-11-161-3/+3
|\ \ | |/ | | | | | | | | _PyUnicode_EqualToASCIIString. The latter function is more readable, faster and doesn't raise exceptions.
| * Issue #28701: Replace PyUnicode_CompareWithASCIIString with ↵Serhiy Storchaka2016-11-161-3/+3
| | | | | | | | | | | | _PyUnicode_EqualToASCIIString. The latter function is more readable, faster and doesn't raise exceptions.
* | Fix xml.etree.ElementTree.Element.getiterator()Victor Stinner2016-09-291-1/+1
| | | | | | | | | | Issue #28314: Fix function declaration (C flags) for the getiterator() method of xml.etree.ElementTree.Element.
* | replace PY_SIZE_MAX with SIZE_MAXBenjamin Peterson2016-09-071-1/+1
| |
* | replace Py_(u)intptr_t with the c99 standard typesBenjamin Peterson2016-09-061-4/+4
| |
* | Avoid calling functions with an empty string as format stringVictor Stinner2016-09-051-1/+1
| | | | | | | | Directly pass NULL rather than an empty string.
* | Rename _PyObject_FastCall() to _PyObject_FastCallDict()Victor Stinner2016-08-221-1/+1
| | | | | | | | | | | | | | | | Issue #27809: * Rename _PyObject_FastCall() function to _PyObject_FastCallDict() * Add _PyObject_FastCall(), _PyObject_CallNoArg() and _PyObject_CallArg1() macros calling _PyObject_FastCallDict()
* | _elementtree: deepcopy() now uses fast callVictor Stinner2016-08-201-8/+4
| | | | | | | | Issue #27128.
* | Issue #25455: Fixed a crash in repr of ElementTree.Element with recursive tag.Serhiy Storchaka2016-06-121-288/+287
|\ \ | |/ |/|
| * Issue #26200: Added Py_SETREF and replaced Py_XSETREF with Py_SETREFSerhiy Storchaka2016-04-101-4/+4
| |\ | | | | | | | | | in places where Py_DECREF was used.
| * \ Issue #22570: Renamed Py_SETREF to Py_XSETREF.Serhiy Storchaka2016-04-061-288/+287
| |\ \
| | * | Issue #20440: Cleaning up the code by using Py_SETREF.Serhiy Storchaka2016-01-051-3/+1
| | | |
| | * | Issue #20440: Cleaning up the code by using Py_SETREF and Py_CLEAR.Serhiy Storchaka2015-12-271-5/+1
| | | | | | | | | | | | | | | | | | | | Old code is correct, but with Py_SETREF and Py_CLEAR it can be cleaner. This patch doesn't fix bugs and hence there is no need to backport it.
| | * | Issue #20440: More use of Py_SETREF.Serhiy Storchaka2015-12-271-22/+12
| | |\ \ | | | | | | | | | | | | | | | | | | | | This patch is manually crafted and contains changes that couldn't be handled automatically.
| | * \ \ Issue #24103: Fixed possible use after free in ElementTree.XMLPullParser.Serhiy Storchaka2015-12-241-282/+287
| | |\ \ \
| | | * | | Issue #25869: Optimized deepcopying ElementTree; it is now 20 times faster.Serhiy Storchaka2015-12-211-24/+54
| | | | | |
| | | * | | Issue #25873: Optimized iterating ElementTree.Serhiy Storchaka2015-12-211-158/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Iterating elements Element.iter() is now 40% faster, iterating text Element.itertext() is now up to 2.5 times faster.
| | | * | | Issue #25902: Fixed various refcount issues in ElementTree iteration.Serhiy Storchaka2015-12-211-32/+58
| | | |\ \ \
| | | * \ \ \ Issue #25421: __sizeof__ methods of builtin types now use dynamic basic size.Serhiy Storchaka2015-12-191-1/+1
| | | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows sys.getsize() to work correctly with their subclasses with __slots__ defined.
| | | * | | | | Issue #25638: Optimized ElementTree parsing; it is now 10% faster.Serhiy Storchaka2015-12-101-9/+20
| | | | | | | |
| | | * | | | | Fixed possible leaks in ElementTree parser.Serhiy Storchaka2015-12-091-2/+8
| | | |\ \ \ \ \
| | | * \ \ \ \ \ Fixed possible leak in ElementTree.Element.iter().Serhiy Storchaka2015-12-091-11/+11
| | | |\ \ \ \ \ \
| | | * | | | | | | Issue #25638: Optimized ElementTree.iterparse(); it is now 2x faster.Serhiy Storchaka2015-12-071-16/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ElementTree.XMLParser._setevents now accepts any objects with the append method, not just a list.
| | | * | | | | | | Issue25814: Propagate all errors from custom XML parser handlersSerhiy Storchaka2015-12-061-88/+39
| | | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in ElementTree.iterparse().
| | | * | | | | | | | Issue #7990: dir() on ElementTree.Element now lists properties: "tag",Serhiy Storchaka2015-11-251-76/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "text", "tail" and "attrib". Original patch by Santoso Wijaya.
* | | | | | | | | | | Issue #25455: Fixed a crash in repr of ElementTree.Element with recursive tag.Serhiy Storchaka2016-06-121-3/+16
| |_|_|_|_|_|_|_|_|/ |/| | | | | | | | |
* | | | | | | | | | Issue #26200: Added Py_SETREF and replaced Py_XSETREF with Py_SETREFSerhiy Storchaka2016-04-101-4/+4
|/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | in places where Py_DECREF was used.
* | | | | | | | | Issue #22570: Renamed Py_SETREF to Py_XSETREF.Serhiy Storchaka2016-04-061-11/+11
| |_|_|_|_|_|_|/ |/| | | | | | |
* | | | | | | | Issue #20440: More use of Py_SETREF.Serhiy Storchaka2015-12-271-24/+14
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is manually crafted and contains changes that couldn't be handled automatically.
* | | | | | | Issue #24103: Fixed possible use after free in ElementTree.XMLPullParser.Serhiy Storchaka2015-12-241-19/+13
| |_|_|_|_|/ |/| | | | |
* | | | | | Issue #25902: Fixed various refcount issues in ElementTree iteration.Serhiy Storchaka2015-12-211-32/+58
| |_|_|_|/ |/| | | |
* | | | | Issue #25421: __sizeof__ methods of builtin types now use dynamic basic size.Serhiy Storchaka2015-12-191-1/+1
| |_|_|/ |/| | | | | | | | | | | | | | | This allows sys.getsize() to work correctly with their subclasses with __slots__ defined.
* | | | Fixed possible leaks in ElementTree parser.Serhiy Storchaka2015-12-091-2/+8
| |_|/ |/| |
* | | Fixed possible leak in ElementTree.Element.iter().Serhiy Storchaka2015-12-091-11/+11
| |/ |/|
* | Issue25814: Propagate all errors from custom XML parser handlersSerhiy Storchaka2015-12-061-88/+39
|\ \ | |/ |/| | | in ElementTree.iterparse().
| * Issue25814: Propagate all errors from custom XML parser handlersSerhiy Storchaka2015-12-061-88/+39
| | | | | | | | in ElementTree.iterparse().
| * Issue #19687: Fixed possible integer overflows in ElementTree.Serhiy Storchaka2015-11-251-10/+34
| | | | | | | | Based on patch by Christian Heimes.
* | Issue #25691: Fixed crash on deleting ElementTree.Element attributes.Serhiy Storchaka2015-11-231-0/+6
|\ \ | |/