faster searchTreeItem

This commit is contained in:
honfika@gmail.com
2015-03-18 10:32:51 +01:00
parent f00af7e09f
commit cdc22d8b2d
6 changed files with 94 additions and 5 deletions

View File

@@ -19,6 +19,8 @@ package com.jpexs.decompiler.flash.timeline;
import com.jpexs.decompiler.flash.SWF;
import com.jpexs.decompiler.flash.tags.base.ASMSource;
import com.jpexs.decompiler.flash.treeitems.TreeItem;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@@ -49,6 +51,13 @@ public class AS2Package implements TreeItem {
return swf;
}
public List<TreeItem> getAllChildren() {
List<TreeItem> result = new ArrayList<>(getChildCount());
result.addAll(subPackages.values());
result.addAll(scripts.values());
return result;
}
public TreeItem getChild(int index) {
if (index < subPackages.size()) {
for (AS2Package subPackage : subPackages.values()) {

View File

@@ -19,6 +19,8 @@ package com.jpexs.decompiler.flash.timeline;
import com.jpexs.decompiler.flash.SWF;
import com.jpexs.decompiler.flash.abc.ScriptPack;
import com.jpexs.decompiler.flash.treeitems.AS3ClassTreeItem;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@@ -47,6 +49,13 @@ public class AS3Package extends AS3ClassTreeItem {
return swf;
}
public List<AS3ClassTreeItem> getAllChildren() {
List<AS3ClassTreeItem> result = new ArrayList<>(getChildCount());
result.addAll(subPackages.values());
result.addAll(scripts.values());
return result;
}
public AS3ClassTreeItem getChild(int index) {
if (index < subPackages.size()) {
for (AS3Package subPackage : subPackages.values()) {

View File

@@ -96,7 +96,7 @@ public class Timeline {
}
}
public Iterable<Frame> getFrames() {
public List<Frame> getFrames() {
ensureInitialized();
return frames;
}

View File

@@ -1103,7 +1103,7 @@ public class Helper {
private static int findRight(int[] imgData, int x, int y, int width) {
int result = x;
int idx = width * y + x;
while ((imgData[idx] >>> 24) > 0 && result < width) {
while (result < width && (imgData[idx] >>> 24) > 0) {
result++;
idx++;
}