mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
gh-142145: Remove quadratic behavior in node ID cache clearing (GH-142146)
* Remove quadratic behavior in node ID cache clearing Co-authored-by: Jacob Walls <38668450+jacobtylerwalls@users.noreply.github.com> * Add news fragment --------- Co-authored-by: Jacob Walls <38668450+jacobtylerwalls@users.noreply.github.com>
This commit is contained in:
parent
8801c6dec7
commit
08d8e18ad8
3 changed files with 20 additions and 8 deletions
|
|
@ -292,13 +292,6 @@ def _append_child(self, node):
|
|||
childNodes.append(node)
|
||||
node.parentNode = self
|
||||
|
||||
def _in_document(node):
|
||||
# return True iff node is part of a document tree
|
||||
while node is not None:
|
||||
if node.nodeType == Node.DOCUMENT_NODE:
|
||||
return True
|
||||
node = node.parentNode
|
||||
return False
|
||||
|
||||
def _write_data(writer, text, attr):
|
||||
"Writes datachars to writer."
|
||||
|
|
@ -1555,7 +1548,7 @@ def _clear_id_cache(node):
|
|||
if node.nodeType == Node.DOCUMENT_NODE:
|
||||
node._id_cache.clear()
|
||||
node._id_search_stack = None
|
||||
elif _in_document(node):
|
||||
elif node.ownerDocument:
|
||||
node.ownerDocument._id_cache.clear()
|
||||
node.ownerDocument._id_search_stack= None
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue