removeUnreferencedElements: Remove defs before unref elements
The `removeUnusedDefs` function can take `referencedIDs` as parameter and its work do not invalidate it. By moving it up in `removeUnreferencedElements` we can save a call to `findReferencedElements` per call to `removeUnreferencedElements`. Signed-off-by: Niels Thykier <niels@thykier.net>
This commit is contained in:
parent
4e489b7ea9
commit
5881890e44
1 changed files with 10 additions and 9 deletions
|
|
@ -674,6 +674,16 @@ def removeUnreferencedElements(doc, keepDefs):
|
|||
identifiedElements = findElementsWithId(doc.documentElement)
|
||||
referencedIDs = findReferencedElements(doc.documentElement)
|
||||
|
||||
if not keepDefs:
|
||||
# Remove most unreferenced elements inside defs
|
||||
defs = doc.documentElement.getElementsByTagName('defs')
|
||||
for aDef in defs:
|
||||
elemsToRemove = removeUnusedDefs(doc, aDef, referencedIDs=referencedIDs)
|
||||
for elem in elemsToRemove:
|
||||
elem.parentNode.removeChild(elem)
|
||||
_num_elements_removed += 1
|
||||
num += 1
|
||||
|
||||
for id in identifiedElements:
|
||||
if id not in referencedIDs:
|
||||
goner = identifiedElements[id]
|
||||
|
|
@ -684,15 +694,6 @@ def removeUnreferencedElements(doc, keepDefs):
|
|||
num += 1
|
||||
_num_elements_removed += 1
|
||||
|
||||
if not keepDefs:
|
||||
# Remove most unreferenced elements inside defs
|
||||
defs = doc.documentElement.getElementsByTagName('defs')
|
||||
for aDef in defs:
|
||||
elemsToRemove = removeUnusedDefs(doc, aDef)
|
||||
for elem in elemsToRemove:
|
||||
elem.parentNode.removeChild(elem)
|
||||
_num_elements_removed += 1
|
||||
num += 1
|
||||
return num
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue