From 20445cfb38a2bd3ca9bdef187a44fd4afa8fa14c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=F8=EDk?= Date: Sat, 20 Apr 2013 15:38:54 +0200 Subject: [PATCH] AS3: For..in fix --- .../jpexs/decompiler/flash/abc/avm2/graph/AVM2Graph.java | 6 +++--- .../flash/abc/avm2/treemodel/NotCompileTimeTreeItem.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/graph/AVM2Graph.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/graph/AVM2Graph.java index 5fa2c2952..11ce08e25 100644 --- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/graph/AVM2Graph.java +++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/graph/AVM2Graph.java @@ -1513,15 +1513,15 @@ public class AVM2Graph extends Graph { for (int i = 0; i < list.size(); i++) { if (list.get(i) instanceof WhileItem) { WhileItem w = (WhileItem) list.get(i); - if (w.expression instanceof HasNextTreeItem) { + if ((!w.expression.isEmpty()) && (w.expression.get(w.expression.size() - 1) instanceof HasNextTreeItem)) { if (!w.commands.isEmpty()) { if (w.commands.get(0) instanceof SetTypeTreeItem) { SetTypeTreeItem sti = (SetTypeTreeItem) w.commands.remove(0); GraphTargetItem gti = sti.getValue().getNotCoerced(); if (gti instanceof NextValueTreeItem) { - list.set(i, new ForEachInTreeItem(w.src, w.loop, new InTreeItem(null, sti.getObject(), ((HasNextTreeItem) w.expression).collection), w.commands)); + list.set(i, new ForEachInTreeItem(w.src, w.loop, new InTreeItem(null, sti.getObject(), ((HasNextTreeItem) w.expression.get(w.expression.size() - 1)).collection), w.commands)); } else if (gti instanceof NextNameTreeItem) { - list.set(i, new ForInTreeItem(w.src, w.loop, new InTreeItem(null, sti.getObject(), ((HasNextTreeItem) w.expression).collection), w.commands)); + list.set(i, new ForInTreeItem(w.src, w.loop, new InTreeItem(null, sti.getObject(), ((HasNextTreeItem) w.expression.get(w.expression.size() - 1)).collection), w.commands)); } } } diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/treemodel/NotCompileTimeTreeItem.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/treemodel/NotCompileTimeTreeItem.java index 743367936..b944cd76b 100644 --- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/treemodel/NotCompileTimeTreeItem.java +++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/treemodel/NotCompileTimeTreeItem.java @@ -37,7 +37,7 @@ public class NotCompileTimeTreeItem extends TreeItem { @Override public String toString(ConstantPool constants, HashMap localRegNames, List fullyQualifiedNames) { - return ""; + return object.toString(constants, localRegNames, fullyQualifiedNames); } @Override