diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-12-21 09:11:12 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-12-21 09:11:12 (GMT) |
commit | 47a9d59d5115fc2d9c29035d9ae4418eb1800f44 (patch) | |
tree | 98dd673665034bf1c0ccaa9f96ebd9222164ce89 /Lib/xml | |
parent | 0c477e6a8580056efaee07c15528edb7d037ce61 (diff) | |
parent | 66c08d90f6d7e5889a19891a0ef994354b14f172 (diff) | |
download | cpython-47a9d59d5115fc2d9c29035d9ae4418eb1800f44.zip cpython-47a9d59d5115fc2d9c29035d9ae4418eb1800f44.tar.gz cpython-47a9d59d5115fc2d9c29035d9ae4418eb1800f44.tar.bz2 |
Issue #25902: Fixed various refcount issues in ElementTree iteration.
Diffstat (limited to 'Lib/xml')
-rw-r--r-- | Lib/xml/etree/ElementTree.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py index a58ef31..b92fb52 100644 --- a/Lib/xml/etree/ElementTree.py +++ b/Lib/xml/etree/ElementTree.py @@ -429,12 +429,14 @@ class Element: tag = self.tag if not isinstance(tag, str) and tag is not None: return - if self.text: - yield self.text + t = self.text + if t: + yield t for e in self: yield from e.itertext() - if e.tail: - yield e.tail + t = e.tail + if t: + yield t def SubElement(parent, tag, attrib={}, **extra): |