diff --git a/src/com/jpexs/decompiler/flash/gui/taglistview/TagListTreeModel.java b/src/com/jpexs/decompiler/flash/gui/taglistview/TagListTreeModel.java index daec1e8ac..4f92e9266 100644 --- a/src/com/jpexs/decompiler/flash/gui/taglistview/TagListTreeModel.java +++ b/src/com/jpexs/decompiler/flash/gui/taglistview/TagListTreeModel.java @@ -275,7 +275,7 @@ public class TagListTreeModel extends AbstractTagTreeModel { for (SWF swf : toRemove) { swfHeaders.remove(swf); - removeFromCache(swf); + uncacheSwf(swf); } } diff --git a/src/com/jpexs/decompiler/flash/gui/tagtree/AbstractTagTreeModel.java b/src/com/jpexs/decompiler/flash/gui/tagtree/AbstractTagTreeModel.java index 3ac748d9c..1b06cfa0d 100644 --- a/src/com/jpexs/decompiler/flash/gui/tagtree/AbstractTagTreeModel.java +++ b/src/com/jpexs/decompiler/flash/gui/tagtree/AbstractTagTreeModel.java @@ -50,13 +50,11 @@ public abstract class AbstractTagTreeModel implements TreeModel { protected Map itemToParentCache = new WeakHashMap<>(); - protected void removeFromCache(TreeItem itemToRemove) { - itemToParentCache.remove(itemToRemove); + protected void uncacheSwf(SWF swf) { Set tSet = new HashSet<>(itemToParentCache.keySet()); for (TreeItem item : tSet) { - TreeItem parent = itemToParentCache.get(item); - if (parent == itemToRemove) { - removeFromCache(item); + if (item.getOpenable() == swf) { + itemToParentCache.remove(item); } } } diff --git a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeModel.java b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeModel.java index c4acea0e2..2f8fc3907 100644 --- a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeModel.java +++ b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeModel.java @@ -161,7 +161,7 @@ public class TagTreeModel extends AbstractTagTreeModel { for (SWF swf : toRemove) { swfInfos.remove(swf); - removeFromCache(swf); + uncacheSwf(swf); } }