localdata fixes

This commit is contained in:
Honfika
2013-10-13 13:59:44 +02:00
parent 407598ee28
commit 7cd3f79dd1
108 changed files with 355 additions and 279 deletions
@@ -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<String>()).appendNewLine();
instruction.toString(writer, localData).appendNewLine();
i++;
}
return writer;
@@ -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;
@@ -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<String> 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;
}
@@ -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
@@ -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();
@@ -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();
@@ -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<GraphTargetItem> 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();
@@ -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<GraphSourceItem> toSourceCall(List<Object> localData, SourceGenerator gen, List<GraphTargetItem> list) {
List<GraphSourceItem> ret = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class AsciiToCharActionItem extends ActionItem {
@@ -32,9 +33,9 @@ public class AsciiToCharActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("chr(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class CallActionItem extends ActionItem {
@@ -32,9 +33,9 @@ public class CallActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("call(", writer);
stripQuotes(value, constants, writer);
stripQuotes(value, localData, writer);
return hilight(")", writer);
}
@@ -43,15 +43,15 @@ public class CallFunctionActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
String paramStr = "";
stripQuotes(functionName, constants, writer);
stripQuotes(functionName, localData, writer);
hilight("(", writer);
for (int t = 0; t < arguments.size(); t++) {
if (t > 0) {
hilight(",", writer);
}
arguments.get(t).toStringNL(writer, LocalData.create(constants));
arguments.get(t).toStringNL(writer, localData);
}
return hilight(")", writer);
}
@@ -49,7 +49,7 @@ public class CallMethodActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
boolean blankMethod = false;
if (methodName instanceof DirectValueActionItem) {
if (((DirectValueActionItem) methodName).value instanceof Undefined) {
@@ -64,15 +64,15 @@ public class CallMethodActionItem extends ActionItem {
if (!blankMethod) {
if (scriptObject.precedence > this.precedence) {
hilight("(", writer);
scriptObject.toString(writer, constants);
scriptObject.toString(writer, localData);
hilight(")", writer);
} else {
scriptObject.toString(writer, constants);
scriptObject.toString(writer, localData);
}
hilight(".", writer);
stripQuotes(methodName, constants, writer);
stripQuotes(methodName, localData, writer);
} else {
scriptObject.toString(writer, constants);
scriptObject.toString(writer, localData);
}
hilight("(", writer);
@@ -80,7 +80,7 @@ public class CallMethodActionItem extends ActionItem {
if (t > 0) {
hilight(",", writer);
}
arguments.get(t).toStringNL(writer, LocalData.create(constants));
arguments.get(t).toStringNL(writer, localData);
}
return hilight(")", writer);
@@ -46,11 +46,11 @@ public class CastOpActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("(", writer);
stripQuotes(constructor, constants, writer);
stripQuotes(constructor, localData, writer);
hilight(")", writer);
return object.toString(writer, LocalData.create(constants));
return object.toString(writer, localData);
}
@Override
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class CharToAsciiActionItem extends ActionItem {
@@ -32,9 +33,9 @@ public class CharToAsciiActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("ord(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -48,13 +49,13 @@ public class CloneSpriteActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("duplicateMovieClip(", writer);
target.toString(writer, constants);
target.toString(writer, localData);
hilight(",", writer);
source.toString(writer, constants);
source.toString(writer, localData);
hilight(",", writer);
depth.toString(writer, constants);
depth.toString(writer, localData);
return hilight(")", writer);
}
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -43,8 +44,8 @@ public class DecrementActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
object.toString(writer, constants);
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
object.toString(writer, localData);
return hilight(" - 1", writer);
}
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -69,14 +70,14 @@ public class DefineLocalActionItem extends ActionItem implements SetTypeActionIt
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("var ", writer);
stripQuotes(name, constants, writer);
stripQuotes(name, localData, writer);
if (value == null) {
return writer;
}
hilight(" = ", writer);
return value.toString(writer, constants);
return value.toString(writer, localData);
}
@Override
@@ -17,6 +17,7 @@
package com.jpexs.decompiler.flash.action.model;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.model.LocalData;
/**
*
@@ -34,7 +35,7 @@ public class DefineRegisterActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return hilight("var " + identifier, writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -45,14 +46,14 @@ public class DeleteActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("delete ", writer);
if (object == null) {
return propertyName.toString(writer, constants);
return propertyName.toString(writer, localData);
}
object.toString(writer, constants);
object.toString(writer, localData);
hilight(".", writer);
return stripQuotes(propertyName, constants, writer);
return stripQuotes(propertyName, localData, writer);
}
@Override
@@ -25,6 +25,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import com.jpexs.helpers.Helper;
import java.util.ArrayList;
import java.util.List;
@@ -86,7 +87,7 @@ public class DirectValueActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toStringNoQuotes(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toStringNoQuotes(HilightedTextWriter writer, LocalData localData) {
if (value instanceof Double) {
if (Double.compare((double) (Double) value, 0) == 0) {
return hilight("0", writer);
@@ -127,7 +128,7 @@ public class DirectValueActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
if (value instanceof Double) {
if (Double.compare((double) (Double) value, 0) == 0) {
return hilight("0", writer);
@@ -41,9 +41,9 @@ public class EnumerateActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("enumerate ", writer);
return object.toString(writer, LocalData.create(constants));
return object.toString(writer, localData);
}
@Override
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
/**
@@ -35,9 +36,9 @@ public class EvalActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("eval(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -35,10 +35,10 @@ public class ExtendsActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
subclass.toString(writer, LocalData.create(constants));
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
subclass.toString(writer, localData);
hilight(" extends ", writer);
return stripQuotes(superclass, constants, writer);
return stripQuotes(superclass, localData, writer);
}
@Override
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -47,12 +48,12 @@ public class FSCommand2ActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("FSCommand2(", writer);
command.toString(writer, constants);
command.toString(writer, localData);
for (int t = 0; t < arguments.size(); t++) {
hilight(",", writer);
arguments.get(t).toString(writer, constants);
arguments.get(t).toString(writer, localData);
}
return hilight(")", writer);
}
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.action.swf3.ActionGetURL;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import com.jpexs.helpers.Helper;
import java.util.List;
@@ -37,7 +38,7 @@ public class FSCommandActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("fscommand(\"", writer);
hilight(Helper.escapeString(command), writer);
return hilight("\")", writer);
@@ -73,14 +73,14 @@ public class FunctionActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
if (true) {
//return writer.appendNoHilight("<func>")
}
hilight("function", writer);
if (calculatedFunctionName != null) {
hilight(" ", writer);
calculatedFunctionName.toStringNoQuotes(writer, constants);
calculatedFunctionName.toStringNoQuotes(writer, localData);
} else if (!functionName.equals("")) {
hilight(" ", writer);
hilight(functionName, writer);
@@ -99,7 +99,7 @@ public class FunctionActionItem extends ActionItem {
hilight(")", writer).appendNewLine();
hilight("{", writer).appendNewLine();
hilight(Graph.INDENTOPEN, writer).appendNewLine();
writer.appendNoHilight(Graph.graphToString(actions, writer.getIsHighlighted(), false, LocalData.create(constants)));
writer.appendNoHilight(Graph.graphToString(actions, writer.getIsHighlighted(), false, localData));
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
return hilight("}", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -44,17 +45,17 @@ public class GetMemberActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
if (!((memberName instanceof DirectValueActionItem) && (((DirectValueActionItem) memberName).value instanceof String))) {
//if(!(functionName instanceof GetVariableActionItem))
object.toString(writer, constants);
object.toString(writer, localData);
hilight("[", writer);
stripQuotes(memberName, constants, writer);
stripQuotes(memberName, localData, writer);
return hilight("]", writer);
}
object.toString(writer, constants);
object.toString(writer, localData);
hilight(".", writer);
return stripQuotes(memberName, constants, writer);
return stripQuotes(memberName, localData, writer);
}
@Override
@@ -24,6 +24,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -46,11 +47,11 @@ public class GetPropertyActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
if (isEmptyString(target)) {
return hilight(Action.propertyNames[propertyIndex], writer);
}
target.toString(writer, constants);
target.toString(writer, localData);
return hilight("." + Action.propertyNames[propertyIndex], writer);
}
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.action.swf4.ActionGetTime;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
import java.util.Random;
@@ -30,7 +31,7 @@ public class GetTimeActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return hilight("getTimer()", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -40,7 +41,7 @@ public class GetURL2ActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
String methodStr = "";
if (sendVarsMethod == 1) {
methodStr = ",\"GET\"";
@@ -50,9 +51,9 @@ public class GetURL2ActionItem extends ActionItem {
}
hilight("getURL(", writer);
urlString.toString(writer, constants);
urlString.toString(writer, localData);
hilight(",", writer);
targetString.toString(writer, constants);
targetString.toString(writer, localData);
return hilight(methodStr + ")", writer);
}
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.action.swf3.ActionGetURL;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import com.jpexs.helpers.Helper;
import java.util.List;
@@ -29,7 +30,7 @@ public class GetURLActionItem extends ActionItem {
public String targetString;
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("getUrl(\"", writer);
hilight(Helper.escapeString(urlString) + "\", \"" + Helper.escapeString(targetString), writer);
return hilight("\")", writer);
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -47,8 +48,8 @@ public class GetVariableActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
return stripQuotes(name, constants, writer);
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return stripQuotes(name, localData, writer);
}
@Override
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.action.swf4.ActionPush;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
/**
@@ -34,7 +35,7 @@ public class GetVersionActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return hilight("getVersion()", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -48,13 +49,13 @@ public class GotoFrame2ActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
String prefix = "gotoAndStop";
if (playFlag) {
prefix = "gotoAndPlay";
}
hilight(prefix + "(", writer);
frame.toString(writer, constants);
frame.toString(writer, localData);
hilight((sceneBiasFlag ? "," + sceneBias : ""), writer);
return hilight(")", writer);
}
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.action.swf3.ActionGotoFrame;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class GotoFrameActionItem extends ActionItem {
@@ -32,7 +33,7 @@ public class GotoFrameActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("gotoAndStop(", writer);
hilight("" + (frame + 1), writer);
return hilight(")", writer);
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.action.swf3.ActionGoToLabel;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import com.jpexs.helpers.Helper;
import java.util.List;
@@ -33,7 +34,7 @@ public class GotoLabelActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("gotoAndStop(\"", writer);
hilight(Helper.escapeString(label), writer);
return hilight("\")", writer);
@@ -35,14 +35,14 @@ public class ImplementsOpActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
subclass.toString(writer, LocalData.create(constants));
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
subclass.toString(writer, localData);
hilight(" implements ", writer);
for (int i = 0; i < superclasses.size(); i++) {
if (i > 0) {
hilight(",", writer);
}
superclasses.get(i).toString(writer, LocalData.create(constants));
superclasses.get(i).toString(writer, localData);
}
return writer;
}
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -43,8 +44,8 @@ public class IncrementActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
object.toString(writer, constants);
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
object.toString(writer, localData);
return hilight(" + 1", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -42,13 +43,13 @@ public class InitArrayActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("[", writer);
for (int i = 0; i < values.size(); i++) {
if (i > 0) {
hilight(",", writer);
}
values.get(i).toString(writer, constants);
values.get(i).toString(writer, localData);
}
return hilight("]", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import com.jpexs.decompiler.graph.model.TernarOpItem;
import java.util.ArrayList;
import java.util.List;
@@ -46,20 +47,20 @@ public class InitObjectActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("{", writer);
for (int i = 0; i < values.size(); i++) {
if (i > 0) {
hilight(",", writer);
}
names.get(i).toStringNoQuotes(writer, constants); //AS1/2 do not allow quotes in name here
names.get(i).toStringNoQuotes(writer, localData); //AS1/2 do not allow quotes in name here
hilight(":", writer);
if (values.get(i) instanceof TernarOpItem) { //Ternar operator contains ":"
hilight("(", writer);
values.get(i).toString(writer, constants);
values.get(i).toString(writer, localData);
hilight(")", writer);
} else {
values.get(i).toString(writer, constants);
values.get(i).toString(writer, localData);
}
}
return hilight("}", writer);
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -50,7 +51,7 @@ public class LoadMovieActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
String methodStr = "";
if (method == 1) {
methodStr = ",\"GET\"";
@@ -59,9 +60,9 @@ public class LoadMovieActionItem extends ActionItem {
methodStr = ",\"POST\"";
}
hilight("loadMovie(", writer);
urlString.toString(writer, constants);
urlString.toString(writer, localData);
hilight(",", writer);
targetString.toString(writer, constants);
targetString.toString(writer, localData);
return hilight(methodStr + ")", writer);
}
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -52,7 +53,7 @@ public class LoadMovieNumActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
String methodStr = "";
if (method == 1) {
methodStr = ",\"GET\"";
@@ -61,9 +62,9 @@ public class LoadMovieNumActionItem extends ActionItem {
methodStr = ",\"POST\"";
}
hilight("loadMovieNum(", writer);
urlString.toString(writer, constants);
urlString.toString(writer, localData);
hilight(",", writer);
num.toString(writer, constants);
num.toString(writer, localData);
return hilight(methodStr + ")", writer);
}
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -50,7 +51,7 @@ public class LoadVariablesActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
String methodStr = "";
if (method == 1) {
methodStr = ",\"GET\"";
@@ -59,9 +60,9 @@ public class LoadVariablesActionItem extends ActionItem {
methodStr = ",\"POST\"";
}
hilight("loadVariables(", writer);
urlString.toString(writer, constants);
urlString.toString(writer, localData);
hilight(",", writer);
targetString.toString(writer, constants);
targetString.toString(writer, localData);
return hilight(methodStr + ")", writer);
}
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -52,7 +53,7 @@ public class LoadVariablesNumActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
String methodStr = "";
if (method == 1) {
methodStr = ",\"GET\"";
@@ -61,9 +62,9 @@ public class LoadVariablesNumActionItem extends ActionItem {
methodStr = ",\"POST\"";
}
hilight("loadVariablesNum(", writer);
urlString.toString(writer, constants);
urlString.toString(writer, localData);
hilight(",", writer);
num.toString(writer, constants);
num.toString(writer, localData);
return hilight(methodStr + ")", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class MBAsciiToCharActionItem extends ActionItem {
@@ -32,9 +33,9 @@ public class MBAsciiToCharActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("mbchr(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class MBCharToAsciiActionItem extends ActionItem {
@@ -32,9 +33,9 @@ public class MBCharToAsciiActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("mbord(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -48,13 +49,13 @@ public class MBStringExtractActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("mbsubstring(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
hilight(",", writer);
index.toString(writer, constants);
index.toString(writer, localData);
hilight(",", writer);
count.toString(writer, constants);
count.toString(writer, localData);
return hilight(")", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class MBStringLengthActionItem extends ActionItem {
@@ -33,14 +34,14 @@ public class MBStringLengthActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("mblength(", writer);
if (value.precedence > precedence) {
hilight("(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
hilight(")", writer);
} else {
value.toString(writer, constants);
value.toString(writer, localData);
}
return hilight(")", writer);
}
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -48,7 +49,7 @@ public class NewMethodActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
boolean blankMethod = false;
if (methodName instanceof DirectValueActionItem) {
if (((DirectValueActionItem) methodName).value instanceof Undefined) {
@@ -62,18 +63,18 @@ public class NewMethodActionItem extends ActionItem {
if (!blankMethod) {
hilight("new ", writer);
}
scriptObject.toString(writer, constants);
scriptObject.toString(writer, localData);
if (!blankMethod) {
hilight(".", writer);
if (methodName instanceof DirectValueActionItem) {
if (((DirectValueActionItem) methodName).value instanceof Undefined) {
} else if (((DirectValueActionItem) methodName).value instanceof String) {
((DirectValueActionItem) methodName).toStringNoQuotes(writer, constants);
((DirectValueActionItem) methodName).toStringNoQuotes(writer, localData);
} else {
methodName.toString(writer, constants);
methodName.toString(writer, localData);
}
} else {
methodName.toString(writer, constants);
methodName.toString(writer, localData);
}
}
hilight("(", writer);
@@ -81,7 +82,7 @@ public class NewMethodActionItem extends ActionItem {
if (t > 0) {
hilight(",", writer);
}
arguments.get(t).toString(writer, constants);
arguments.get(t).toString(writer, localData);
}
return hilight(")", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -45,15 +46,15 @@ public class NewObjectActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("new ", writer);
stripQuotes(objectName, constants, writer);
stripQuotes(objectName, localData, writer);
hilight("(", writer);
for (int t = 0; t < arguments.size(); t++) {
if (t > 0) {
hilight(",", writer);
}
arguments.get(t).toString(writer, constants);
arguments.get(t).toString(writer, localData);
}
return hilight(")", writer);
}
@@ -20,12 +20,13 @@ import com.jpexs.decompiler.flash.action.swf3.ActionNextFrame;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class NextFrameActionItem extends ActionItem {
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return hilight("nextFrame()", writer);
}
@@ -20,12 +20,13 @@ import com.jpexs.decompiler.flash.action.swf3.ActionPlay;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class PlayActionItem extends ActionItem {
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return hilight("play()", writer);
}
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.action.swf4.ActionPop;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
/**
@@ -33,7 +34,7 @@ public class PopActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return writer;
}
@@ -29,6 +29,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -50,8 +51,8 @@ public class PostDecrementActionItem extends ActionItem implements SetTypeAction
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
object.toString(writer, constants);
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
object.toString(writer, localData);
return hilight("--", writer);
}
@@ -29,6 +29,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -50,8 +51,8 @@ public class PostIncrementActionItem extends ActionItem implements SetTypeAction
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
object.toString(writer, constants);
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
object.toString(writer, localData);
return hilight("++", writer);
}
@@ -20,12 +20,13 @@ import com.jpexs.decompiler.flash.action.swf3.ActionPrevFrame;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class PrevFrameActionItem extends ActionItem {
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return hilight("prevFrame()", writer);
}
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -50,11 +51,11 @@ public class PrintActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("print(", writer);
target.toString(writer, constants);
target.toString(writer, localData);
hilight(",", writer);
boundingBox.toString(writer, constants);
boundingBox.toString(writer, localData);
return hilight(")", writer);
}
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -50,11 +51,11 @@ public class PrintAsBitmapActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("printAsBitmap(", writer);
target.toString(writer, constants);
target.toString(writer, localData);
hilight(",", writer);
boundingBox.toString(writer, constants);
boundingBox.toString(writer, localData);
return hilight(")", writer);
}
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -49,12 +50,18 @@ public class PrintAsBitmapNumActionItem extends ActionItem {
this.boundingBox = boundingBox;
}
/**
*
* @param writer
* @param localData
* @return
*/
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("printAsBitmapNum(", writer);
num.toString(writer, constants);
num.toString(writer, localData);
hilight(",", writer);
boundingBox.toString(writer, constants);
boundingBox.toString(writer, localData);
return hilight(")", writer);
}
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -50,11 +51,11 @@ public class PrintNumActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("printNum(", writer);
num.toString(writer, constants);
num.toString(writer, localData);
hilight(",", writer);
boundingBox.toString(writer, constants);
boundingBox.toString(writer, localData);
return hilight(")", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class RandomNumberActionItem extends ActionItem {
@@ -32,9 +33,9 @@ public class RandomNumberActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("random(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class RemoveSpriteActionItem extends ActionItem {
@@ -32,9 +33,9 @@ public class RemoveSpriteActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("removeMovieClip(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -32,6 +32,7 @@ import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.ExitItem;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -44,9 +45,9 @@ public class ReturnActionItem extends ActionItem implements ExitItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("return ", writer);
return value.toString(writer, constants);
return value.toString(writer, localData);
}
@Override
@@ -27,6 +27,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -78,21 +79,21 @@ public class SetMemberActionItem extends ActionItem implements SetTypeActionItem
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
if (!((objectName instanceof DirectValueActionItem) && (((DirectValueActionItem) objectName).value instanceof String))) {
//if(!(functionName instanceof GetVariableActionItem))
object.toString(writer, constants);
object.toString(writer, localData);
hilight("[", writer);
stripQuotes(objectName, constants, writer);
stripQuotes(objectName, localData, writer);
hilight("]", writer);
hilight(" = ", writer);
return value.toString(writer, constants);
return value.toString(writer, localData);
}
object.toString(writer, constants);
object.toString(writer, localData);
hilight(".", writer);
stripQuotes(objectName, constants, writer);
stripQuotes(objectName, localData, writer);
hilight(" = ", writer);
return value.toString(writer, constants);
return value.toString(writer, localData);
}
@Override
@@ -28,6 +28,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class SetPropertyActionItem extends ActionItem implements SetTypeActionItem {
@@ -70,14 +71,14 @@ public class SetPropertyActionItem extends ActionItem implements SetTypeActionIt
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
if (isEmptyString(target)) {
hilight(Action.propertyNames[propertyIndex] + " = ", writer);
return value.toString(writer, constants);
return value.toString(writer, localData);
}
target.toString(writer, constants);
target.toString(writer, localData);
hilight("." + Action.propertyNames[propertyIndex] + " = ", writer);
return value.toString(writer, constants);
return value.toString(writer, localData);
}
@Override
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class SetTarget2ActionItem extends ActionItem {
@@ -33,9 +34,9 @@ public class SetTarget2ActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("tellTarget(", writer);
target.toString(writer, constants);
target.toString(writer, localData);
return hilight(")", writer);
}
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.action.model;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import com.jpexs.helpers.Helper;
import java.util.List;
@@ -32,7 +33,7 @@ public class SetTargetActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("tellTarget(\"", writer);
hilight(Helper.escapeString(target), writer);
return hilight("\")", writer);
@@ -27,6 +27,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class SetVariableActionItem extends ActionItem implements SetTypeActionItem {
@@ -67,16 +68,16 @@ public class SetVariableActionItem extends ActionItem implements SetTypeActionIt
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
if (name instanceof DirectValueActionItem || name instanceof GetVariableActionItem) {
stripQuotes(name, constants, writer);
stripQuotes(name, localData, writer);
hilight(" = ", writer);
return value.toString(writer, constants);
return value.toString(writer, localData);
} else {
hilight("set(", writer);
name.toString(writer, constants);
name.toString(writer, localData);
hilight(",", writer);
value.toString(writer, constants);
value.toString(writer, localData);
return hilight(")", writer);
}
}
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class StartDragActionItem extends ActionItem {
@@ -47,7 +48,7 @@ public class StartDragActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
boolean hasConstrains = true;
if (constrain instanceof DirectValueActionItem) {
if (Double.compare(EcmaScript.toNumber(constrain.getResult()), 0) == 0) {
@@ -55,18 +56,18 @@ public class StartDragActionItem extends ActionItem {
}
}
hilight("startDrag(", writer);
target.toString(writer, constants);
target.toString(writer, localData);
hilight(",", writer);
lockCenter.toString(writer, constants);
lockCenter.toString(writer, localData);
if (hasConstrains) {
hilight(",", writer);
x1.toString(writer, constants);
x1.toString(writer, localData);
hilight(",", writer);
y1.toString(writer, constants);
y1.toString(writer, localData);
hilight(",", writer);
x2.toString(writer, constants);
x2.toString(writer, localData);
hilight(",", writer);
y2.toString(writer, constants);
y2.toString(writer, localData);
}
return hilight(")", writer);
}
@@ -20,12 +20,13 @@ import com.jpexs.decompiler.flash.action.swf3.ActionStop;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class StopActionItem extends ActionItem {
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return hilight("stop()", writer);
}
@@ -20,12 +20,13 @@ import com.jpexs.decompiler.flash.action.swf3.ActionStopSounds;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class StopAllSoundsActionItem extends ActionItem {
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return hilight("stopAllSounds()", writer);
}
@@ -20,12 +20,13 @@ import com.jpexs.decompiler.flash.action.swf4.ActionEndDrag;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class StopDragActionItem extends ActionItem {
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return hilight("stopDrag()", writer);
}
@@ -24,6 +24,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class StoreRegisterActionItem extends ActionItem implements SetTypeActionItem {
@@ -67,15 +68,15 @@ public class StoreRegisterActionItem extends ActionItem implements SetTypeAction
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
if (temporary) {
value.toString(writer, constants);
value.toString(writer, localData);
} else {
if (define) {
hilight("var ", writer);
}
hilight(register.translate() + " = ", writer);
value.toString(writer, constants);
value.toString(writer, localData);
}
return writer;
}
@@ -18,6 +18,7 @@ package com.jpexs.decompiler.flash.action.model;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.model.LocalData;
public class StrictModeActionItem extends ActionItem {
@@ -29,7 +30,7 @@ public class StrictModeActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return hilight("StrictMode(" + mode + ");", writer); //I still don't know how AS source of Strict Mode instruction looks like, assuming this...
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class StringExtractActionItem extends ActionItem {
@@ -38,12 +39,12 @@ public class StringExtractActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
value.toString(writer, constants);
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
value.toString(writer, localData);
hilight(".substr(", writer);
index.toString(writer, constants);
index.toString(writer, localData);
hilight(",", writer);
count.toString(writer, constants);
count.toString(writer, localData);
return hilight(")", writer);
}
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class StringLengthActionItem extends ActionItem {
@@ -32,9 +33,9 @@ public class StringLengthActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("length(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class TargetPathActionItem extends ActionItem {
@@ -32,9 +33,9 @@ public class TargetPathActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("targetPath(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -33,9 +33,9 @@ public class ThrowActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("throw ", writer);
return value.toString(writer, LocalData.create(constants));
return value.toString(writer, localData);
}
@Override
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class ToIntegerActionItem extends ActionItem {
@@ -32,9 +33,9 @@ public class ToIntegerActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("int(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -33,9 +33,9 @@ public class ToNumberActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("Number(", writer);
value.toString(writer, LocalData.create(constants));
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -33,9 +33,9 @@ public class ToStringActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("String(", writer);
value.toString(writer, LocalData.create(constants));
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -20,12 +20,13 @@ import com.jpexs.decompiler.flash.action.swf3.ActionToggleQuality;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class ToggleHighQualityActionItem extends ActionItem {
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return hilight("toggleHighQuality()", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
public class TraceActionItem extends ActionItem {
@@ -32,9 +33,9 @@ public class TraceActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("trace(", writer);
value.toString(writer, constants);
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -35,9 +35,9 @@ public class TypeOfActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("typeof(", writer);
value.toString(writer, LocalData.create(constants));
value.toString(writer, localData);
return hilight(")", writer);
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -46,9 +47,9 @@ public class UnLoadMovieActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("unloadMovie(", writer);
targetString.toString(writer, constants);
targetString.toString(writer, localData);
return hilight(")", writer);
}
@@ -24,6 +24,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -48,9 +49,9 @@ public class UnLoadMovieNumActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("unloadMovieNum(", writer);
num.toString(writer, constants);
num.toString(writer, localData);
return hilight(")", writer);
}
@@ -18,6 +18,7 @@ package com.jpexs.decompiler.flash.action.model;
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.model.LocalData;
public class UnsupportedActionItem extends ActionItem {
@@ -29,7 +30,7 @@ public class UnsupportedActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
return hilight("//Unsupported by decompiler:" + value, writer);
}
@@ -34,6 +34,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.ContinueItem;
import com.jpexs.decompiler.graph.model.LocalData;
import com.jpexs.helpers.Helper;
import java.util.ArrayList;
import java.util.HashSet;
@@ -156,12 +157,12 @@ public class ClassActionItem extends ActionItem implements Block {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("class ", writer);
className.toStringNoQuotes(writer, constants);
className.toStringNoQuotes(writer, localData);
if (extendsOp != null) {
hilight(" extends ", writer);
extendsOp.toStringNoQuotes(writer, constants);
extendsOp.toStringNoQuotes(writer, localData);
}
if (!implementsOp.isEmpty()) {
hilight(" implements ", writer);
@@ -171,7 +172,7 @@ public class ClassActionItem extends ActionItem implements Block {
hilight(", ", writer);
}
first = false;
Action.getWithoutGlobal(t).toString(writer, constants);
Action.getWithoutGlobal(t).toString(writer, localData);
}
}
writer.appendNewLine();
@@ -179,14 +180,14 @@ public class ClassActionItem extends ActionItem implements Block {
hilight(Graph.INDENTOPEN, writer).appendNewLine();
if (constructor != null) {
constructor.toString(writer, constants).appendNewLine();
constructor.toString(writer, localData).appendNewLine();
}
for (MyEntry<GraphTargetItem, GraphTargetItem> item : vars) {
hilight("var ", writer);
item.key.toStringNoQuotes(writer, constants);
item.key.toStringNoQuotes(writer, localData);
hilight(" = ", writer);
item.value.toString(writer, constants);
item.value.toString(writer, localData);
hilight(";", writer).appendNewLine();
}
for (String v : uninitializedVars) {
@@ -196,19 +197,19 @@ public class ClassActionItem extends ActionItem implements Block {
}
for (MyEntry<GraphTargetItem, GraphTargetItem> item : staticVars) {
hilight("static var ", writer);
item.key.toStringNoQuotes(writer, constants);
item.key.toStringNoQuotes(writer, localData);
hilight(" = ", writer);
item.value.toString(writer, constants);
item.value.toString(writer, localData);
hilight(";", writer).appendNewLine();
}
for (GraphTargetItem f : functions) {
f.toString(writer, constants).appendNewLine();
f.toString(writer, localData).appendNewLine();
}
for (GraphTargetItem f : staticFunctions) {
hilight("static ", writer);
f.toString(writer, constants).appendNewLine();
f.toString(writer, localData).appendNewLine();
}
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
@@ -39,6 +39,7 @@ import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.Loop;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.ContinueItem;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -64,20 +65,20 @@ public class ForInActionItem extends LoopActionItem implements Block {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("loop" + loop.id + ":", writer).appendNewLine();
hilight("for(", writer);
if ((variableName instanceof DirectValueActionItem) && (((DirectValueActionItem) variableName).value instanceof RegisterNumber)) {
hilight("var ", writer);
}
stripQuotes(variableName, constants, writer);
stripQuotes(variableName, localData, writer);
hilight(" in ", writer);
enumVariable.toString(writer, constants);
enumVariable.toString(writer, localData);
hilight(")", writer).appendNewLine();
hilight("{", writer).appendNewLine();
hilight(Graph.INDENTOPEN, writer).appendNewLine();
for (GraphTargetItem ti : commands) {
ti.toStringSemicoloned(writer, constants).appendNewLine();
ti.toStringSemicoloned(writer, localData).appendNewLine();
}
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
hilight("}", writer).appendNewLine();
@@ -46,13 +46,13 @@ public class IfFrameLoadedActionItem extends ActionItem implements Block {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("ifFrameLoaded(", writer);
frame.toString(writer, constants);
frame.toString(writer, localData);
hilight(")", writer).appendNewLine();
hilight("{", writer).appendNewLine();
hilight(Graph.INDENTOPEN, writer).appendNewLine();
writer.appendNoHilight(Graph.graphToString(actions, writer.getIsHighlighted(), false, LocalData.create(constants)));
writer.appendNoHilight(Graph.graphToString(actions, writer.getIsHighlighted(), false, localData));
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
return hilight("}", writer);
}
@@ -24,6 +24,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -43,9 +44,9 @@ public class InterfaceActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("interface ", writer);
name.toStringNoQuotes(writer, constants);
name.toStringNoQuotes(writer, localData);
boolean first = true;
if (!superInterfaces.isEmpty()) {
hilight(" extends ", writer);
@@ -55,7 +56,7 @@ public class InterfaceActionItem extends ActionItem {
hilight(", ", writer);
}
first = false;
Action.getWithoutGlobal(ti).toStringNoQuotes(writer, constants);
Action.getWithoutGlobal(ti).toStringNoQuotes(writer, localData);
}
writer.appendNewLine();
hilight("{", writer).appendNewLine();
@@ -26,6 +26,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -41,14 +42,14 @@ public class TellTargetActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("tellTarget(", writer);
target.toString(writer, constants);
target.toString(writer, localData);
hilight(")", writer).appendNewLine();
hilight("{", writer).appendNewLine();
hilight(Graph.INDENTOPEN, writer).appendNewLine();
for (GraphTargetItem ti : commands) {
ti.toString(writer, constants).appendNewLine();
ti.toString(writer, localData).appendNewLine();
}
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
return hilight("}", writer);
@@ -30,6 +30,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.ContinueItem;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.List;
@@ -58,13 +59,13 @@ public class TryActionItem extends ActionItem implements Block {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
hilight("try", writer).appendNewLine();
hilight("{", writer).appendNewLine();
hilight(Graph.INDENTOPEN, writer).appendNewLine();
for (GraphTargetItem ti : tryCommands) {
if (!ti.isEmpty()) {
ti.toStringSemicoloned(writer, constants).appendNewLine();
ti.toStringSemicoloned(writer, localData).appendNewLine();
}
}
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
@@ -72,14 +73,14 @@ public class TryActionItem extends ActionItem implements Block {
for (int e = 0; e < catchExceptions.size(); e++) {
writer.appendNewLine();
hilight("catch(", writer);
catchExceptions.get(e).toStringNoQuotes(writer, constants);
catchExceptions.get(e).toStringNoQuotes(writer, localData);
hilight(")", writer).appendNewLine();
hilight("{", writer).appendNewLine();
hilight(Graph.INDENTOPEN, writer).appendNewLine();
List<GraphTargetItem> commands = catchCommands.get(e);
for (GraphTargetItem ti : commands) {
if (!ti.isEmpty()) {
ti.toStringSemicoloned(writer, constants).appendNewLine();
ti.toStringSemicoloned(writer, localData).appendNewLine();
}
}
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
@@ -92,7 +93,7 @@ public class TryActionItem extends ActionItem implements Block {
hilight(Graph.INDENTOPEN, writer).appendNewLine();
for (GraphTargetItem ti : finallyCommands) {
if (!ti.isEmpty()) {
ti.toStringSemicoloned(writer, constants).appendNewLine();
ti.toStringSemicoloned(writer, localData).appendNewLine();
}
}
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
@@ -150,7 +151,7 @@ public class TryActionItem extends ActionItem implements Block {
String catchName = null;
if (catchExceptions != null) {
if (!catchExceptions.isEmpty()) {
catchName = catchExceptions.get(0).toStringNoQuotes(false, new ConstantPool(asGenerator.getConstantPool()));
catchName = catchExceptions.get(0).toStringNoQuotes(false, LocalData.create(new ConstantPool(asGenerator.getConstantPool())));
}
}
@@ -48,9 +48,8 @@ public class WithActionItem extends ActionItem {
}
@Override
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
String ret;
LocalData localData = LocalData.create(constants);
hilight("with(", writer);
scope.toString(writer, localData);
hilight(")", writer).appendNewLine();
@@ -121,6 +121,7 @@ import com.jpexs.decompiler.graph.model.ContinueItem;
import com.jpexs.decompiler.graph.model.DoWhileItem;
import com.jpexs.decompiler.graph.model.ForItem;
import com.jpexs.decompiler.graph.model.IfItem;
import com.jpexs.decompiler.graph.model.LocalData;
import com.jpexs.decompiler.graph.model.NotItem;
import com.jpexs.decompiler.graph.model.OrItem;
import com.jpexs.decompiler.graph.model.ParenthesisItem;
@@ -409,12 +410,12 @@ public class ActionScriptParser {
if (nameStr instanceof GetMemberActionItem) {
GetMemberActionItem mem = (GetMemberActionItem) nameStr;
if (mem.memberName instanceof DirectValueActionItem) {
classNameStr = ((DirectValueActionItem) mem.memberName).toStringNoQuotes(false, new ConstantPool(constantPool));
classNameStr = ((DirectValueActionItem) mem.memberName).toStringNoQuotes(false, LocalData.create(new ConstantPool(constantPool)));
}
} else if (nameStr instanceof GetVariableActionItem) {
GetVariableActionItem var = (GetVariableActionItem) nameStr;
if (var.name instanceof DirectValueActionItem) {
classNameStr = ((DirectValueActionItem) var.name).toStringNoQuotes(false, new ConstantPool(constantPool));
classNameStr = ((DirectValueActionItem) var.name).toStringNoQuotes(false, LocalData.create(new ConstantPool(constantPool)));
}
}
@@ -17,12 +17,12 @@
package com.jpexs.decompiler.flash.action.swf4;
import com.jpexs.decompiler.flash.action.Action;
import com.jpexs.decompiler.flash.action.model.ConstantPool;
import com.jpexs.decompiler.flash.action.model.DirectValueActionItem;
import com.jpexs.decompiler.flash.action.model.EvalActionItem;
import com.jpexs.decompiler.flash.action.model.GetVariableActionItem;
import com.jpexs.decompiler.flash.action.model.GetVersionActionItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.HashMap;
import java.util.List;
import java.util.Stack;
@@ -41,7 +41,7 @@ public class ActionGetVariable extends Action {
@Override
public void translate(Stack<GraphTargetItem> stack, List<GraphTargetItem> output, java.util.HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem name = stack.pop();
GraphTargetItem computedVal = variables.get(name.toStringNoQuotes(false, (ConstantPool) null));
GraphTargetItem computedVal = variables.get(name.toStringNoQuotes(false, LocalData.create(null)));
if (name instanceof DirectValueActionItem && ((DirectValueActionItem) name).value.equals("/:$version")) {
stack.push(new GetVersionActionItem(this));
} else if (!(name instanceof DirectValueActionItem) && !(name instanceof GetVariableActionItem)) {
@@ -30,6 +30,7 @@ import com.jpexs.decompiler.flash.action.model.TemporaryRegister;
import com.jpexs.decompiler.flash.action.model.operations.PreDecrementActionItem;
import com.jpexs.decompiler.flash.action.model.operations.PreIncrementActionItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.HashMap;
import java.util.List;
import java.util.Stack;
@@ -49,7 +50,7 @@ public class ActionSetVariable extends Action implements StoreTypeAction {
public void translate(Stack<GraphTargetItem> stack, List<GraphTargetItem> output, java.util.HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem value = stack.pop().getThroughDuplicate();
GraphTargetItem name = stack.pop();
variables.put(name.toStringNoQuotes(false, (ConstantPool) null), value);
variables.put(name.toStringNoQuotes(false, LocalData.create(null)), value);
if (value instanceof IncrementActionItem) {
GraphTargetItem obj = ((IncrementActionItem) value).object;
if (!stack.isEmpty()) {
@@ -125,6 +126,6 @@ public class ActionSetVariable extends Action implements StoreTypeAction {
if (stack.size() < 2) {
return null;
}
return stack.get(stack.size() - 2).toStringNoQuotes(false, cpool);
return stack.get(stack.size() - 2).toStringNoQuotes(false, LocalData.create(cpool));
}
}
@@ -18,8 +18,8 @@ package com.jpexs.decompiler.flash.action.swf5;
import com.jpexs.decompiler.flash.action.Action;
import com.jpexs.decompiler.flash.action.model.CallFunctionActionItem;
import com.jpexs.decompiler.flash.action.model.ConstantPool;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -45,7 +45,7 @@ public class ActionCallFunction extends Action {
args.add(stack.pop());
}
CallFunctionActionItem cft = new CallFunctionActionItem(this, functionName, args);
cft.calculatedFunction = functions.get(functionName.toStringNoQuotes(false, (ConstantPool) null));
cft.calculatedFunction = functions.get(functionName.toStringNoQuotes(false, LocalData.create(null)));
stack.push(cft);
}
}
@@ -17,9 +17,9 @@
package com.jpexs.decompiler.flash.action.swf5;
import com.jpexs.decompiler.flash.action.Action;
import com.jpexs.decompiler.flash.action.model.ConstantPool;
import com.jpexs.decompiler.flash.action.model.DefineLocalActionItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.HashMap;
import java.util.List;
import java.util.Stack;
@@ -39,7 +39,7 @@ public class ActionDefineLocal extends Action {
public void translate(Stack<GraphTargetItem> stack, List<GraphTargetItem> output, java.util.HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem value = stack.pop();
GraphTargetItem name = stack.pop();
variables.put(name.toStringNoQuotes(false, (ConstantPool) null), value);
variables.put(name.toStringNoQuotes(false, LocalData.create(null)), value);
output.add(new DefineLocalActionItem(this, name, value));
}
}
@@ -2160,7 +2160,7 @@ public class Graph {
HilightedTextWriter writer = new HilightedTextWriter(highlight);
for (GraphTargetItem ti : tree) {
if (!ti.isEmpty()) {
ti.toStringSemicoloned(writer, localData.constants).appendNewLine();
ti.toStringSemicoloned(writer, localData).appendNewLine();
}
}
String[] parts = writer.toString().split("\r\n");

Some files were not shown because too many files have changed in this diff Show More