diff --git a/trunk/build.xml b/trunk/build.xml
index 877c0ad0f..7cd5b881f 100644
--- a/trunk/build.xml
+++ b/trunk/build.xml
@@ -47,7 +47,8 @@
-
+
+
diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java
index 25d0654a8..d1d1fbc61 100644
--- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java
+++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java
@@ -707,12 +707,12 @@ public class AVM2Code implements Serializable {
return s.toString();
}
- public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
+ public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
int i = 0;
for (AVM2Instruction instruction : code) {
writer.appendNoHilight(Helper.formatAddress(i));
writer.appendNoHilight(" ");
- instruction.toString(writer, constants, new ArrayList()).appendNewLine();
+ instruction.toString(writer, localData).appendNewLine();
i++;
}
return writer;
diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/CodeStats.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/CodeStats.java
index a8860a804..0a65f6a1b 100644
--- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/CodeStats.java
+++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/CodeStats.java
@@ -18,6 +18,7 @@ package com.jpexs.decompiler.flash.abc.avm2;
import com.jpexs.decompiler.flash.abc.ABC;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
+import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
/**
@@ -42,7 +43,7 @@ public class CodeStats {
if (stats.stackpos > ms) {
ms = stats.stackpos;
}
- writer.appendNoHilight(i + ":" + stats.stackpos + (deltastack >= 0 ? "+" + deltastack : deltastack) + "," + stats.scopepos + " " + stats.ins.toString(writer, abc.constants, fullyQualifiedNames)).appendNewLine();
+ writer.appendNoHilight(i + ":" + stats.stackpos + (deltastack >= 0 ? "+" + deltastack : deltastack) + "," + stats.scopepos + " " + stats.ins.toString(writer, LocalData.create(abc.constants, null, fullyQualifiedNames))).appendNewLine();
i++;
}
return writer;
diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/instructions/AVM2Instruction.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/instructions/AVM2Instruction.java
index 13bf3965e..1212a55ee 100644
--- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/instructions/AVM2Instruction.java
+++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/instructions/AVM2Instruction.java
@@ -31,6 +31,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSource;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
+import com.jpexs.decompiler.graph.model.LocalData;
import com.jpexs.helpers.Helper;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -264,9 +265,9 @@ public class AVM2Instruction implements Serializable, GraphSourceItem {
return ignored;
}
- public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, List fullyQualifiedNames) {
+ public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
writer.appendNoHilight(Helper.formatAddress(offset) + " " + Helper.padSpaceRight(Helper.byteArrToString(getBytes()), 30) + definition.instructionName);
- writer.appendNoHilight(getParams(constants, fullyQualifiedNames) + getComment());
+ writer.appendNoHilight(getParams(localData.constantsAvm2, localData.fullyQualifiedNames) + getComment());
return writer;
}
diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/AVM2Item.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/AVM2Item.java
index 5300f3554..b1f726942 100644
--- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/AVM2Item.java
+++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/AVM2Item.java
@@ -41,8 +41,12 @@ public abstract class AVM2Item extends GraphTargetItem {
return writer.toString();
}
- public String toStringSemicoloned(HilightedTextWriter writer, LocalData localData) {
- return toString(writer, localData) + (needsSemicolon() ? ";" : "");
+ public HilightedTextWriter toStringSemicoloned(HilightedTextWriter writer, LocalData localData) {
+ toString(writer, localData);
+ if (needsSemicolon()) {
+ hilight(";", writer);
+ };
+ return writer;
}
@Override
diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForEachInAVM2Item.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForEachInAVM2Item.java
index f5c7a280b..0d29c282a 100644
--- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForEachInAVM2Item.java
+++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForEachInAVM2Item.java
@@ -79,7 +79,7 @@ public class ForEachInAVM2Item extends LoopItem implements Block {
hilight(Graph.INDENTOPEN, writer).appendNewLine();
for (GraphTargetItem ti : commands) {
if (!ti.isEmpty()) {
- ti.toStringSemicoloned(writer, localData.constants).appendNewLine();
+ ti.toStringSemicoloned(writer, localData).appendNewLine();
}
}
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForInAVM2Item.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForInAVM2Item.java
index db918a03d..775cd56c9 100644
--- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForInAVM2Item.java
+++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForInAVM2Item.java
@@ -79,7 +79,7 @@ public class ForInAVM2Item extends LoopItem implements Block {
hilight(Graph.INDENTOPEN, writer).appendNewLine();
for (GraphTargetItem ti : commands) {
if (!ti.isEmpty()) {
- ti.toStringSemicoloned(writer, localData.constants).appendNewLine();
+ ti.toStringSemicoloned(writer, localData).appendNewLine();
}
}
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/TryAVM2Item.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/TryAVM2Item.java
index 5ee1d6061..3d1c62bd8 100644
--- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/TryAVM2Item.java
+++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/TryAVM2Item.java
@@ -58,7 +58,7 @@ public class TryAVM2Item extends AVM2Item implements Block {
hilight(Graph.INDENTOPEN, writer).appendNewLine();
for (GraphTargetItem ti : tryCommands) {
if (!ti.isEmpty()) {
- ti.toStringSemicoloned(writer, localData.constants).appendNewLine();
+ ti.toStringSemicoloned(writer, localData).appendNewLine();
}
}
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
@@ -72,7 +72,7 @@ public class TryAVM2Item extends AVM2Item implements Block {
List commands = catchCommands.get(e);
for (GraphTargetItem ti : commands) {
if (!ti.isEmpty()) {
- ti.toStringSemicoloned(writer, localData.constants).appendNewLine();
+ ti.toStringSemicoloned(writer, localData).appendNewLine();
}
}
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
@@ -85,7 +85,7 @@ public class TryAVM2Item extends AVM2Item implements Block {
hilight(Graph.INDENTOPEN, writer).appendNewLine();
for (GraphTargetItem ti : finallyCommands) {
if (!ti.isEmpty()) {
- ti.toStringSemicoloned(writer, localData.constants).appendNewLine();
+ ti.toStringSemicoloned(writer, localData).appendNewLine();
}
}
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
diff --git a/trunk/src/com/jpexs/decompiler/flash/action/model/ActionItem.java b/trunk/src/com/jpexs/decompiler/flash/action/model/ActionItem.java
index 0d3bc1029..27a31cb36 100644
--- a/trunk/src/com/jpexs/decompiler/flash/action/model/ActionItem.java
+++ b/trunk/src/com/jpexs/decompiler/flash/action/model/ActionItem.java
@@ -37,7 +37,7 @@ public abstract class ActionItem extends GraphTargetItem implements Serializable
super(instruction, precedence);
}
- public abstract HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants);
+ public abstract HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData);
protected boolean isEmptyString(GraphTargetItem target) {
if (target instanceof DirectValueActionItem) {
@@ -51,7 +51,7 @@ public abstract class ActionItem extends GraphTargetItem implements Serializable
return false;
}
- protected HilightedTextWriter stripQuotes(GraphTargetItem target, ConstantPool constants, HilightedTextWriter writer) {
+ protected HilightedTextWriter stripQuotes(GraphTargetItem target, LocalData localData, HilightedTextWriter writer) {
if (target instanceof DirectValueActionItem) {
if (((DirectValueActionItem) target).value instanceof String) {
return ((DirectValueActionItem) target).hilight((String) ((DirectValueActionItem) target).value, writer);
@@ -60,15 +60,10 @@ public abstract class ActionItem extends GraphTargetItem implements Serializable
if (target == null) {
return writer;
} else {
- return target.toString(writer, constants);
+ return target.toString(writer, localData);
}
}
- @Override
- public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
- return toString(writer, localData.constants);
- }
-
protected List toSourceCall(List