From f6b3d62088342465152fefd25c7340ab85bcdb91 Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Sat, 31 Jan 2015 17:47:15 +0100 Subject: [PATCH] sprite frame count fix --- .../decompiler/flash/tags/DefineSpriteTag.java | 3 ++- src/com/jpexs/decompiler/flash/gui/View.java | 16 ++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java index bddd21deb..50abbb3eb 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java @@ -300,7 +300,8 @@ public class DefineSpriteTag extends CharacterTag implements DrawableTag, Timeli @Override public int getNumFrames() { - return frameCount; + // flashplayer ignores the count stored in frameCount + return getTimeline().getFrames().size(); // frameCount } private int getRealFrameCount() { diff --git a/src/com/jpexs/decompiler/flash/gui/View.java b/src/com/jpexs/decompiler/flash/gui/View.java index 3b1f6ae30..4c49a97cc 100644 --- a/src/com/jpexs/decompiler/flash/gui/View.java +++ b/src/com/jpexs/decompiler/flash/gui/View.java @@ -487,13 +487,17 @@ public class View { List> expandedNodes = new ArrayList<>(); int rowCount = tree.getRowCount(); for (int i = 0; i < rowCount; i++) { - TreePath path = tree.getPathForRow(i); - if (tree.isExpanded(path)) { - List pathAsStringList = new ArrayList<>(); - for (Object pathCompnent : path.getPath()) { - pathAsStringList.add(pathCompnent.toString()); + try { + TreePath path = tree.getPathForRow(i); + if (tree.isExpanded(path)) { + List pathAsStringList = new ArrayList<>(); + for (Object pathCompnent : path.getPath()) { + pathAsStringList.add(pathCompnent.toString()); + } + expandedNodes.add(pathAsStringList); } - expandedNodes.add(pathAsStringList); + } catch (IndexOutOfBoundsException ex) { + // TreeNode was removed, ignore } } return expandedNodes;