mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-25 13:40:46 +00:00
localData class added
This commit is contained in:
@@ -97,6 +97,7 @@ import com.jpexs.decompiler.graph.Graph;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItemContainer;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Cache;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import com.jpexs.helpers.ProgressListener;
|
||||
@@ -1585,7 +1586,7 @@ public class SWF {
|
||||
GraphSourceItem ins = code.get(ip);
|
||||
|
||||
if (debugMode) {
|
||||
System.err.println("Visit " + ip + ": ofs" + Helper.formatAddress(((Action) ins).getAddress()) + ":" + ((Action) ins).getASMSource(new ArrayList<GraphSourceItem>(), new ArrayList<Long>(), new ArrayList<String>(), code.version, false) + " stack:" + Helper.stackToString(stack, Helper.toList(new ConstantPool())));
|
||||
System.err.println("Visit " + ip + ": ofs" + Helper.formatAddress(((Action) ins).getAddress()) + ":" + ((Action) ins).getASMSource(new ArrayList<GraphSourceItem>(), new ArrayList<Long>(), new ArrayList<String>(), code.version, false) + " stack:" + Helper.stackToString(stack, LocalData.create(new ConstantPool())));
|
||||
}
|
||||
if (ins.isExit()) {
|
||||
break;
|
||||
|
||||
@@ -79,6 +79,7 @@ import com.jpexs.decompiler.graph.GraphPart;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.NotCompileTimeItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.decompiler.graph.model.ScriptEndItem;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.io.*;
|
||||
@@ -1531,7 +1532,7 @@ public class AVM2Code implements Serializable {
|
||||
list.remove(lastPos);
|
||||
}
|
||||
|
||||
s = Graph.graphToString(list, hilighted, replaceIndents, constants, localRegNames, fullyQualifiedNames);
|
||||
s = Graph.graphToString(list, hilighted, replaceIndents, LocalData.create(constants, localRegNames, fullyQualifiedNames));
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
+2
-1
@@ -26,6 +26,7 @@ import com.jpexs.decompiler.flash.abc.types.MethodBody;
|
||||
import com.jpexs.decompiler.flash.abc.types.MethodInfo;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -41,7 +42,7 @@ public class NewClassIns extends InstructionDefinition {
|
||||
public void translate(boolean isStatic, int scriptIndex, int classIndex, java.util.HashMap<Integer, GraphTargetItem> localRegs, Stack<GraphTargetItem> stack, java.util.Stack<GraphTargetItem> scopeStack, ConstantPool constants, AVM2Instruction ins, MethodInfo[] method_info, List<GraphTargetItem> output, MethodBody body, ABC abc, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames, String path, HashMap<Integer, Integer> localRegsAssignmentIps, int ip, HashMap<Integer, List<Integer>> refs, AVM2Code code) {
|
||||
int clsIndex = ins.operands[0];
|
||||
HilightedTextWriter writer = new HilightedTextWriter(false);
|
||||
stack.pop().toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
stack.pop().toString(writer, LocalData.create(constants, localRegNames, fullyQualifiedNames));
|
||||
String baseType = writer.toString();
|
||||
stack.push(new UnparsedAVM2Item(ins, "new " + abc.constants.constant_multiname[abc.instance_info[clsIndex].name_index].getName(constants, fullyQualifiedNames) + ".class extends " + baseType));
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.jpexs.decompiler.flash.abc.types.MethodBody;
|
||||
import com.jpexs.decompiler.flash.abc.types.MethodInfo;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
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;
|
||||
@@ -54,7 +55,7 @@ public class SetSuperIns extends InstructionDefinition implements SetTypeIns {
|
||||
int multinameIndex = ins.operands[0];
|
||||
String multiname = resolveMultinameNoPop(1, stack, abc.constants, multinameIndex, ins, fullyQualifiedNames);
|
||||
HilightedTextWriter writer = new HilightedTextWriter(false);
|
||||
stack.get(1 + resolvedCount(abc.constants, multinameIndex)).toString(writer, abc.constants, localRegNames, fullyQualifiedNames);
|
||||
stack.get(1 + resolvedCount(abc.constants, multinameIndex)).toString(writer, LocalData.create(abc.constants, localRegNames, fullyQualifiedNames));
|
||||
String obj = writer.toString();
|
||||
return obj + ".super." + multiname;
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import static com.jpexs.decompiler.graph.GraphTargetItem.PRECEDENCE_PRIMARY;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -35,22 +36,16 @@ public abstract class AVM2Item extends GraphTargetItem {
|
||||
super(instruction, precedence);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, List<Object> localData) {
|
||||
return toString(writer, (ConstantPool) localData.get(0), (HashMap<Integer, String>) localData.get(1), (List<String>) localData.get(2));
|
||||
}
|
||||
public abstract HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData);
|
||||
|
||||
public abstract HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames);
|
||||
|
||||
public String toStringNoH(ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public String toStringNoH(LocalData localData) {
|
||||
HilightedTextWriter writer = new HilightedTextWriter(false);
|
||||
toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
toString(writer, localData);
|
||||
return writer.toString();
|
||||
}
|
||||
|
||||
public String toStringSemicoloned(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
return toString(writer, constants, localRegNames, fullyQualifiedNames) + (needsSemicolon() ? ";" : "");
|
||||
public String toStringSemicoloned(HilightedTextWriter writer, LocalData localData) {
|
||||
return toString(writer, localData) + (needsSemicolon() ? ";" : "");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -58,7 +53,7 @@ public abstract class AVM2Item extends GraphTargetItem {
|
||||
return true;
|
||||
}
|
||||
|
||||
protected HilightedTextWriter formatProperty(HilightedTextWriter writer, ConstantPool constants, GraphTargetItem object, GraphTargetItem propertyName, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
protected HilightedTextWriter formatProperty(HilightedTextWriter writer, GraphTargetItem object, GraphTargetItem propertyName, LocalData localData) {
|
||||
boolean empty = false;
|
||||
if (object instanceof LocalRegAVM2Item) {
|
||||
if (((LocalRegAVM2Item) object).computedValue != null) {
|
||||
@@ -71,12 +66,12 @@ public abstract class AVM2Item extends GraphTargetItem {
|
||||
if (!empty) {
|
||||
if (object.precedence > PRECEDENCE_PRIMARY) {
|
||||
hilight("(", writer);
|
||||
object.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
object.toString(writer, localData);
|
||||
hilight(")", writer);
|
||||
empty = false;
|
||||
} else {
|
||||
int writerLength = writer.getLength();
|
||||
object.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
object.toString(writer, localData);
|
||||
if (writerLength == writer.getLength()) {
|
||||
empty = true;
|
||||
}
|
||||
@@ -84,18 +79,18 @@ public abstract class AVM2Item extends GraphTargetItem {
|
||||
}
|
||||
|
||||
if (empty) {
|
||||
return propertyName.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
return propertyName.toString(writer, localData);
|
||||
}
|
||||
if (propertyName instanceof FullMultinameAVM2Item) {
|
||||
if (((FullMultinameAVM2Item) propertyName).name != null) {
|
||||
return propertyName.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
return propertyName.toString(writer, localData);
|
||||
} else {
|
||||
hilight(".", writer);
|
||||
return propertyName.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
return propertyName.toString(writer, localData);
|
||||
}
|
||||
} else {
|
||||
hilight("[", writer);
|
||||
propertyName.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
propertyName.toString(writer, localData);
|
||||
return hilight("]", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -39,9 +40,9 @@ public class AlchemyLoadAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("op_" + name + "(", writer);
|
||||
ofs.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
ofs.toString(writer, localData);
|
||||
return hilight(") /*Alchemy*/", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -38,9 +39,9 @@ public class AlchemySignExtendAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("op_" + name + "(", writer);
|
||||
value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
value.toString(writer, localData);
|
||||
return hilight(") /*Alchemy*/", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -40,11 +41,11 @@ public class AlchemyStoreAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("op_" + name + "(", writer);
|
||||
ofs.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
ofs.toString(writer, localData);
|
||||
hilight(",", writer);
|
||||
value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
value.toString(writer, localData);
|
||||
return hilight(") /*Alchemy*/", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -36,8 +37,8 @@ public class ApplyTypeAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
object.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
object.toString(writer, localData);
|
||||
if (!params.isEmpty()) {
|
||||
hilight(".<", writer);
|
||||
for (int i = 0; i < params.size(); i++) {
|
||||
@@ -48,7 +49,7 @@ public class ApplyTypeAVM2Item extends AVM2Item {
|
||||
if (p instanceof NullAVM2Item) {
|
||||
hilight("*", writer);
|
||||
} else {
|
||||
p.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
p.toString(writer, localData);
|
||||
}
|
||||
}
|
||||
hilight(">", writer);
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,7 +33,7 @@ public class BooleanAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight(value ? "true" : "false", writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -37,7 +38,7 @@ public class CallAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
/*String recPart = ""; receiver.toString(constants, localRegNames) + hilight(".", writer);
|
||||
if (receiver instanceof NewActivationAVM2Item) {
|
||||
recPart = "";
|
||||
@@ -47,17 +48,17 @@ public class CallAVM2Item extends AVM2Item {
|
||||
}*/
|
||||
if (function.precedence > precedence) {
|
||||
hilight("(", writer);
|
||||
function.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
function.toString(writer, localData);
|
||||
hilight(")", writer);
|
||||
} else {
|
||||
function.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
function.toString(writer, localData);
|
||||
}
|
||||
hilight("(", writer);
|
||||
for (int a = 0; a < arguments.size(); a++) {
|
||||
if (a > 0) {
|
||||
hilight(",", writer);
|
||||
}
|
||||
arguments.get(a).toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
arguments.get(a).toString(writer, localData);
|
||||
}
|
||||
return hilight(")", writer);
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -38,8 +39,8 @@ public class CallMethodAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
receiver.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
receiver.toString(writer, localData);
|
||||
hilight(".", writer);
|
||||
hilight(methodName, writer);
|
||||
hilight("(", writer);
|
||||
@@ -47,7 +48,7 @@ public class CallMethodAVM2Item extends AVM2Item {
|
||||
if (a > 0) {
|
||||
hilight(",", writer);
|
||||
}
|
||||
arguments.get(a).toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
arguments.get(a).toString(writer, localData);
|
||||
}
|
||||
return hilight(")", writer);
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -39,14 +40,14 @@ public class CallPropertyAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
formatProperty(writer, constants, receiver, propertyName, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
formatProperty(writer, receiver, propertyName, localData);
|
||||
hilight("(", writer);
|
||||
for (int a = 0; a < arguments.size(); a++) {
|
||||
if (a > 0) {
|
||||
hilight(",", writer);
|
||||
}
|
||||
arguments.get(a).toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
arguments.get(a).toString(writer, localData);
|
||||
}
|
||||
return hilight(")", writer);
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -38,8 +39,8 @@ public class CallStaticAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
receiver.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
receiver.toString(writer, localData);
|
||||
hilight(".", writer);
|
||||
hilight(methodName, writer);
|
||||
hilight("(", writer);
|
||||
@@ -47,7 +48,7 @@ public class CallStaticAVM2Item extends AVM2Item {
|
||||
if (a > 0) {
|
||||
hilight(",", writer);
|
||||
}
|
||||
arguments.get(a).toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
arguments.get(a).toString(writer, localData);
|
||||
}
|
||||
return hilight(")", writer);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.flash.helpers.hilight.Highlighting;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -40,20 +41,20 @@ public class CallSuperAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
if (!receiver.toString(false, constants, localRegNames, fullyQualifiedNames).equals("this")) {
|
||||
receiver.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
if (!receiver.toString(false, localData).equals("this")) {
|
||||
receiver.toString(writer, localData);
|
||||
hilight(".", writer);
|
||||
}
|
||||
hilight("super.", writer);
|
||||
multiname.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
multiname.toString(writer, localData);
|
||||
hilight("(", writer);
|
||||
String args = "";
|
||||
for (int a = 0; a < arguments.size(); a++) {
|
||||
if (a > 0) {
|
||||
hilight(",", writer);
|
||||
}
|
||||
arguments.get(a).toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
arguments.get(a).toString(writer, localData);
|
||||
}
|
||||
return hilight(")", writer);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.types.Multiname;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,7 +33,7 @@ public class ClassAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
return hilight(className.getName(constants, fullyQualifiedNames), writer);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight(className.getName(localData.constantsAvm2, localData.fullyQualifiedNames), writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.flash.ecma.Null;
|
||||
import com.jpexs.decompiler.flash.ecma.Undefined;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -37,9 +38,9 @@ public class CoerceAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
//return hilight("("+type+")", highlight)+
|
||||
return value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
return value.toString(writer, localData);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -35,19 +36,19 @@ public class ConstructAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
if (object instanceof NewFunctionAVM2Item) {
|
||||
hilight("new ", writer);
|
||||
return object.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
return object.toString(writer, localData);
|
||||
}
|
||||
hilight("new ", writer);
|
||||
object.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
object.toString(writer, localData);
|
||||
hilight("(", writer);
|
||||
for (int a = 0; a < args.size(); a++) {
|
||||
if (a > 0) {
|
||||
hilight(",", writer);
|
||||
}
|
||||
args.get(a).toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
args.get(a).toString(writer, localData);
|
||||
}
|
||||
return hilight(")", writer);
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -37,20 +38,20 @@ public class ConstructPropAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("new ", writer);
|
||||
int idx = writer.getLength();
|
||||
object.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
object.toString(writer, localData);
|
||||
if (idx < writer.getLength()) {
|
||||
hilight(".", writer);
|
||||
}
|
||||
propertyName.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
propertyName.toString(writer, localData);
|
||||
hilight("(", writer);
|
||||
for (int a = 0; a < args.size(); a++) {
|
||||
if (a > 0) {
|
||||
hilight(",", writer);
|
||||
}
|
||||
args.get(a).toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
args.get(a).toString(writer, localData);
|
||||
}
|
||||
return hilight(")", writer);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.flash.helpers.hilight.Highlighting;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -36,9 +37,9 @@ public class ConstructSuperAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
if (!object.toString(false, constants, localRegNames, fullyQualifiedNames).equals("this")) {
|
||||
object.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
if (!object.toString(false, localData).equals("this")) {
|
||||
object.toString(writer, localData);
|
||||
hilight(".", writer);
|
||||
}
|
||||
hilight("super(", writer);
|
||||
@@ -46,7 +47,7 @@ public class ConstructSuperAVM2Item extends AVM2Item {
|
||||
if (a > 0) {
|
||||
hilight(",", writer);
|
||||
}
|
||||
args.get(a).toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
args.get(a).toString(writer, localData);
|
||||
}
|
||||
return hilight(")", writer);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.ecma.EcmaScript;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -36,8 +37,8 @@ public class ConvertAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
return value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return value.toString(writer, localData);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,8 +33,8 @@ public class DecLocalAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
hilight(localRegName(localRegNames, regIndex), writer);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight(localRegName(localData.localRegNames, regIndex), writer);
|
||||
return hilight("--", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.ecma.EcmaScript;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,8 +33,8 @@ public class DecrementAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
value.toString(writer, localData);
|
||||
return hilight("-1", writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -38,8 +39,8 @@ public class DefaultXMLNamespace extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("default xml namespace = ", writer);
|
||||
return ns.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
return ns.toString(writer, localData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -36,9 +37,9 @@ public class EscapeXAttrAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("{", writer);
|
||||
value.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
value.toString(writer, localData);
|
||||
return hilight("}", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -38,9 +39,9 @@ public class EscapeXElemAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("{", writer);
|
||||
expression.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
expression.toString(writer, localData);
|
||||
return hilight("}", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -38,7 +39,7 @@ public class FilteredCheckAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
return object.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return object.toString(writer, localData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,7 +33,7 @@ public class FindPropertyAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,7 +33,7 @@ public class FloatValueAVM2Item extends NumberValueAVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight("" + value, writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.abc.types.Namespace;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -58,13 +59,13 @@ public class FullMultinameAVM2Item extends AVM2Item {
|
||||
public boolean isXML(ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
String cname;
|
||||
if (name != null) {
|
||||
cname = name.toString(false, constants, localRegNames, fullyQualifiedNames);
|
||||
cname = name.toString(false, LocalData.create(constants, localRegNames, fullyQualifiedNames));
|
||||
} else {
|
||||
cname = (constants.constant_multiname[multinameIndex].getName(constants, fullyQualifiedNames));
|
||||
}
|
||||
String cns = "";
|
||||
if (namespace != null) {
|
||||
cns = namespace.toString(false, constants, localRegNames, fullyQualifiedNames);
|
||||
cns = namespace.toString(false, LocalData.create(constants, localRegNames, fullyQualifiedNames));
|
||||
} else {
|
||||
Namespace ns = constants.constant_multiname[multinameIndex].getNamespace(constants);
|
||||
if ((ns != null) && (ns.name_index != 0)) {
|
||||
@@ -75,9 +76,9 @@ public class FullMultinameAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
if (namespace != null) {
|
||||
namespace.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
namespace.toString(writer, localData);
|
||||
hilight("::", writer);
|
||||
} else {
|
||||
/*Namespace ns = constants.constant_multiname[multinameIndex].getNamespace(constants);
|
||||
@@ -87,9 +88,11 @@ public class FullMultinameAVM2Item extends AVM2Item {
|
||||
}
|
||||
if (name != null) {
|
||||
hilight("[", writer);
|
||||
name.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
name.toString(writer, localData);
|
||||
hilight("]", writer);
|
||||
} else {
|
||||
ConstantPool constants = localData.constantsAvm2;
|
||||
List<String> fullyQualifiedNames = localData.fullyQualifiedNames;
|
||||
hilight(constants.constant_multiname[multinameIndex].getName(constants, fullyQualifiedNames), writer);
|
||||
}
|
||||
return writer;
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -35,9 +36,9 @@ public class GetDescendantsAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
object.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
object.toString(writer, localData);
|
||||
hilight("..", writer);
|
||||
return multiname.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
return multiname.toString(writer, localData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.abc.types.Multiname;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -33,7 +34,7 @@ public class GetLexAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
return hilight(propertyName.getName(constants, fullyQualifiedNames), writer);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight(propertyName.getName(localData.constantsAvm2, localData.fullyQualifiedNames), writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -35,7 +36,7 @@ public class GetPropertyAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
return formatProperty(writer, constants, object, propertyName, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return formatProperty(writer, object, propertyName, localData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.abc.types.Multiname;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -36,10 +37,10 @@ public class GetSlotAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
if (slotName == null) {
|
||||
return hilight("/*UnknownSlot*/", writer);
|
||||
}
|
||||
return hilight(slotName.getName(constants, fullyQualifiedNames), writer);
|
||||
return hilight(slotName.getName(localData.constantsAvm2, localData.fullyQualifiedNames), writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.flash.helpers.hilight.Highlighting;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -36,12 +37,12 @@ public class GetSuperAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
if (!object.toString(false, constants, localRegNames, fullyQualifiedNames).equals("this")) {
|
||||
object.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
if (!object.toString(false, localData).equals("this")) {
|
||||
object.toString(writer, localData);
|
||||
hilight(".", writer);
|
||||
}
|
||||
hilight("super.", writer);
|
||||
return propertyName.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
return propertyName.toString(writer, localData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -40,9 +41,9 @@ public class HasNextAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
collection.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
collection.toString(writer, localData);
|
||||
hilight(" hasNext ", writer);
|
||||
return object.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
return object.toString(writer, localData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -35,9 +36,9 @@ public class InAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
object.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
object.toString(writer, localData);
|
||||
hilight(" in ", writer);
|
||||
return collection.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
return collection.toString(writer, localData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,8 +33,8 @@ public class IncLocalAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
hilight(localRegName(localRegNames, regIndex), writer);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight(localRegName(localData.localRegNames, regIndex), writer);
|
||||
return hilight("++", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.ecma.EcmaScript;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,8 +33,8 @@ public class IncrementAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
value.toString(writer, localData);
|
||||
return hilight("+1", writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.clauses.AssignmentAVM2Item;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -38,10 +39,10 @@ public class InitPropertyAVM2Item extends AVM2Item implements SetTypeAVM2Item, A
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
formatProperty(writer, constants, object, propertyName, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
formatProperty(writer, object, propertyName, localData);
|
||||
hilight(" = ", writer);
|
||||
return value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
return value.toString(writer, localData);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,7 +33,7 @@ public class IntegerValueAVM2Item extends NumberValueAVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight("" + value, writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.flash.abc.avm2.model.clauses.FilterAVM2Item;
|
||||
import com.jpexs.decompiler.flash.ecma.Undefined;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -50,11 +51,11 @@ public class LocalRegAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
if (computedValue instanceof FilterAVM2Item) {
|
||||
return computedValue.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
return computedValue.toString(writer, localData);
|
||||
}
|
||||
return hilight(localRegName(localRegNames, regIndex), writer);
|
||||
return hilight(localRegName(localData.localRegNames, regIndex), writer);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,10 +33,11 @@ public class NameSpaceAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
if (namespaceIndex == 0) {
|
||||
return hilight("*", writer);
|
||||
}
|
||||
ConstantPool constants = localData.constantsAvm2;
|
||||
return hilight(constants.constant_namespace[namespaceIndex].toString(constants), writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.decompiler.graph.model.TernarOpItem;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -35,15 +36,15 @@ public class NameValuePair extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
name.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
name.toString(writer, localData);
|
||||
hilight(":", writer);
|
||||
if (value instanceof TernarOpItem) { //Ternar operator contains ":"
|
||||
hilight("(", writer);
|
||||
value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
value.toString(writer, localData);
|
||||
hilight(")", writer);
|
||||
} else {
|
||||
value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
value.toString(writer, localData);
|
||||
}
|
||||
return writer;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -29,7 +30,7 @@ public class NanAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight("NaN", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,7 +33,7 @@ public class NewActivationAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight("newactivation()", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -33,13 +34,13 @@ public class NewArrayAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("[", writer);
|
||||
for (int a = 0; a < values.size(); a++) {
|
||||
if (a > 0) {
|
||||
hilight(",", writer);
|
||||
}
|
||||
values.get(a).toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
values.get(a).toString(writer, localData);
|
||||
}
|
||||
return hilight("]", writer);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.flash.helpers.hilight.Highlighting;
|
||||
import com.jpexs.decompiler.graph.Graph;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -42,7 +43,7 @@ public class NewFunctionAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("function" + (!functionName.equals("") ? " " + functionName : ""), writer);
|
||||
boolean highlight = writer.getIsHighlighted();
|
||||
String mhead = "(" + (highlight ? paramStr : Highlighting.stripHilights(paramStr)) + "):" + (highlight ? returnStr : Highlighting.stripHilights(returnStr));
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.Graph;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -33,7 +34,7 @@ public class NewObjectAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
boolean singleLine = pairs.size() < 2;
|
||||
if (!singleLine) {
|
||||
writer.appendNewLine();
|
||||
@@ -48,7 +49,7 @@ public class NewObjectAVM2Item extends AVM2Item {
|
||||
if (n > 0) {
|
||||
hilight(",", writer).appendNewLine();
|
||||
}
|
||||
pairs.get(n).toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
pairs.get(n).toString(writer, localData);
|
||||
}
|
||||
if (!singleLine) {
|
||||
writer.appendNewLine();
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -40,11 +41,11 @@ public class NextNameAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("nextName(", writer);
|
||||
index.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
index.toString(writer, localData);
|
||||
hilight(",", writer);
|
||||
obj.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
obj.toString(writer, localData);
|
||||
return hilight(")", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -40,11 +41,11 @@ public class NextValueAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("nextValue(", writer);
|
||||
index.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
index.toString(writer, localData);
|
||||
hilight(",", writer);
|
||||
obj.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
obj.toString(writer, localData);
|
||||
return hilight(")", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.ecma.Null;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -30,7 +31,7 @@ public class NullAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight("null", writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.clauses.AssignmentAVM2Item;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -35,8 +36,8 @@ public class PostDecrementAVM2Item extends AVM2Item implements AssignmentAVM2Ite
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
object.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
object.toString(writer, localData);
|
||||
return hilight("--", writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.clauses.AssignmentAVM2Item;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -35,8 +36,8 @@ public class PostIncrementAVM2Item extends AVM2Item implements AssignmentAVM2Ite
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
object.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
object.toString(writer, localData);
|
||||
return hilight("++", writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.Graph;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.ExitItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -34,8 +35,8 @@ public class ReturnValueAVM2Item extends AVM2Item implements ExitItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("return ", writer);
|
||||
return value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
return value.toString(writer, localData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.ExitItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -30,7 +31,7 @@ public class ReturnVoidAVM2Item extends AVM2Item implements ExitItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight("return", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -35,7 +36,7 @@ public class ScriptAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight("script" + scriptIndex, writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphPart;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -41,9 +42,9 @@ public class SetGlobalSlotAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("setglobalslot(" + slotId + ",", writer);
|
||||
value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
value.toString(writer, localData);
|
||||
return hilight(")", writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.clauses.AssignmentAVM2Item;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -36,9 +37,9 @@ public class SetLocalAVM2Item extends AVM2Item implements SetTypeAVM2Item, Assig
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
hilight(localRegName(localRegNames, regIndex) + " = ", writer);
|
||||
return value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight(localRegName(localData.localRegNames, regIndex) + " = ", writer);
|
||||
return value.toString(writer, localData);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.flash.abc.avm2.model.clauses.AssignmentAVM2Item;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphPart;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -44,10 +45,10 @@ public class SetPropertyAVM2Item extends AVM2Item implements SetTypeAVM2Item, As
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
formatProperty(writer, constants, object, propertyName, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
formatProperty(writer, object, propertyName, localData);
|
||||
hilight(" = ", writer);
|
||||
return value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
return value.toString(writer, localData);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.flash.abc.types.Multiname;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphPart;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -45,15 +46,13 @@ public class SetSlotAVM2Item extends AVM2Item implements SetTypeAVM2Item, Assign
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
getName(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
getName(writer, localData);
|
||||
hilight(" = ", writer);
|
||||
return value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
return value.toString(writer, localData);
|
||||
}
|
||||
|
||||
public String getName(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
String ret = "";
|
||||
|
||||
public HilightedTextWriter getName(HilightedTextWriter writer, LocalData localData) {
|
||||
/*ret = scope.toString(constants, localRegNames) + ".";
|
||||
if (!(scope instanceof NewActivationAVM2Item)) {
|
||||
ret = scope.toString(constants, localRegNames) + ".";
|
||||
@@ -66,9 +65,9 @@ public class SetSlotAVM2Item extends AVM2Item implements SetTypeAVM2Item, Assign
|
||||
}
|
||||
}*/
|
||||
if (slotName == null) {
|
||||
return ret + hilight("/*UnknownSlot*/", writer);
|
||||
return hilight("/*UnknownSlot*/", writer);
|
||||
}
|
||||
return ret + hilight(slotName.getName(constants, fullyQualifiedNames), writer);
|
||||
return hilight(slotName.getName(localData.constantsAvm2, localData.fullyQualifiedNames), writer);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.flash.helpers.hilight.Highlighting;
|
||||
import com.jpexs.decompiler.graph.GraphPart;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -44,15 +45,15 @@ public class SetSuperAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
if (!object.toString(false, constants, localRegNames, fullyQualifiedNames).equals("this")) {
|
||||
object.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
if (!object.toString(false, localData).equals("this")) {
|
||||
object.toString(writer, localData);
|
||||
hilight(".", writer);
|
||||
}
|
||||
hilight("super.", writer);
|
||||
propertyName.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
propertyName.toString(writer, localData);
|
||||
hilight(" = ", writer);
|
||||
return value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
return value.toString(writer, localData);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -33,7 +34,7 @@ public class StringAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight("\"" + Helper.escapeString(value) + "\"", writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.types.Multiname;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,7 +33,7 @@ public class ThisAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight("this", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,8 +33,8 @@ public class ThrowAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("throw ", writer);
|
||||
return value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
return value.toString(writer, localData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.ecma.Undefined;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -30,7 +31,7 @@ public class UndefinedAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight("undefined", writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,7 +33,7 @@ public class UnparsedAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight(value, writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.Graph;
|
||||
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;
|
||||
@@ -43,9 +44,9 @@ public class WithAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("with(", writer);
|
||||
scope.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
scope.toString(writer, localData);
|
||||
hilight(")", writer).appendNewLine();
|
||||
hilight("{", writer).appendNewLine();
|
||||
hilight(Graph.INDENTOPEN, writer).appendNewLine();
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -33,7 +34,7 @@ public class WithEndAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight("}", writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -33,7 +34,7 @@ public class WithObjectAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -37,12 +38,12 @@ public class XMLAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
for (GraphTargetItem part : parts) {
|
||||
if (part instanceof StringAVM2Item) {
|
||||
hilight(((StringAVM2Item) part).value, writer);
|
||||
} else {
|
||||
part.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
part.toString(writer, localData);
|
||||
}
|
||||
}
|
||||
return writer;
|
||||
|
||||
+7
-6
@@ -24,6 +24,7 @@ import com.jpexs.decompiler.flash.abc.avm2.model.SetLocalAVM2Item;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.SetSlotAVM2Item;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -48,7 +49,7 @@ public class DeclarationAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
if (assignment instanceof SetLocalAVM2Item) {
|
||||
SetLocalAVM2Item lti = (SetLocalAVM2Item) assignment;
|
||||
String type = "*";
|
||||
@@ -59,19 +60,19 @@ public class DeclarationAVM2Item extends AVM2Item {
|
||||
type = ((ConvertAVM2Item) lti.value).type;
|
||||
}
|
||||
hilight("var ", writer);
|
||||
hilight(localRegName(localRegNames, lti.regIndex) + ":" + type + " = ", writer);
|
||||
return lti.value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
hilight(localRegName(localData.localRegNames, lti.regIndex) + ":" + type + " = ", writer);
|
||||
return lti.value.toString(writer, localData);
|
||||
}
|
||||
if (assignment instanceof SetSlotAVM2Item) {
|
||||
SetSlotAVM2Item ssti = (SetSlotAVM2Item) assignment;
|
||||
hilight("var ", writer);
|
||||
ssti.getName(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
ssti.getName(writer, localData);
|
||||
hilight(":", writer);
|
||||
hilight(type, writer);
|
||||
hilight(" = ", writer);
|
||||
return ssti.value.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
return ssti.value.toString(writer, localData);
|
||||
}
|
||||
hilight("var ", writer);
|
||||
return assignment.toString(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames));
|
||||
return assignment.toString(writer, localData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.abc.avm2.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.AVM2Item;
|
||||
import com.jpexs.decompiler.flash.abc.types.ABCException;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -33,7 +34,7 @@ public class ExceptionAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
return hilight(exception.getVarName(constants, fullyQualifiedNames), writer);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return hilight(exception.getVarName(localData.constantsAvm2, localData.fullyQualifiedNames), writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.AVM2Item;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -40,10 +41,10 @@ public class FilterAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
collection.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
collection.toString(writer, localData);
|
||||
hilight(".(", writer);
|
||||
expression.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
expression.toString(writer, localData);
|
||||
return hilight(")", writer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model.clauses;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.InAVM2Item;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.LocalRegAVM2Item;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.SetTypeAVM2Item;
|
||||
import com.jpexs.decompiler.flash.action.model.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.Block;
|
||||
import com.jpexs.decompiler.graph.Graph;
|
||||
@@ -26,8 +27,10 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.Loop;
|
||||
import com.jpexs.decompiler.graph.model.ContinueItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.decompiler.graph.model.LoopItem;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class ForEachInAVM2Item extends LoopItem implements Block {
|
||||
@@ -69,7 +72,7 @@ public class ForEachInAVM2Item extends LoopItem implements Block {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, List<Object> localData) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("loop" + loop.id + ":", writer).appendNewLine();
|
||||
hilight("for each (", writer);
|
||||
expression.toString(writer, localData);
|
||||
@@ -78,7 +81,7 @@ public class ForEachInAVM2Item extends LoopItem implements Block {
|
||||
hilight(Graph.INDENTOPEN, writer).appendNewLine();
|
||||
for (GraphTargetItem ti : commands) {
|
||||
if (!ti.isEmpty()) {
|
||||
ti.toStringSemicoloned(writer, localData).appendNewLine();
|
||||
ti.toStringSemicoloned(writer, localData.constants).appendNewLine();
|
||||
}
|
||||
}
|
||||
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.abc.avm2.model.clauses;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.InAVM2Item;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.LocalRegAVM2Item;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.SetTypeAVM2Item;
|
||||
import com.jpexs.decompiler.flash.action.model.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.Block;
|
||||
import com.jpexs.decompiler.graph.Graph;
|
||||
@@ -26,8 +27,10 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.Loop;
|
||||
import com.jpexs.decompiler.graph.model.ContinueItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.decompiler.graph.model.LoopItem;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class ForInAVM2Item extends LoopItem implements Block {
|
||||
@@ -69,7 +72,7 @@ public class ForInAVM2Item extends LoopItem implements Block {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, List<Object> localData) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("loop" + loop.id + ":", writer).appendNewLine();
|
||||
hilight("for (", writer);
|
||||
expression.toString(writer, localData);
|
||||
@@ -78,7 +81,7 @@ public class ForInAVM2Item extends LoopItem implements Block {
|
||||
hilight(Graph.INDENTOPEN, writer).appendNewLine();
|
||||
for (GraphTargetItem ti : commands) {
|
||||
if (!ti.isEmpty()) {
|
||||
ti.toStringSemicoloned(writer, localData).appendNewLine();
|
||||
ti.toStringSemicoloned(writer, localData.constants).appendNewLine();
|
||||
}
|
||||
}
|
||||
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.jpexs.decompiler.graph.Block;
|
||||
import com.jpexs.decompiler.graph.Graph;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
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.HashMap;
|
||||
@@ -54,27 +55,27 @@ public class TryAVM2Item extends AVM2Item implements Block {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
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, Helper.toList(constants, localRegNames, fullyQualifiedNames)).appendNewLine();
|
||||
ti.toStringSemicoloned(writer, localData.constants).appendNewLine();
|
||||
}
|
||||
}
|
||||
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
|
||||
hilight("}", writer);
|
||||
for (int e = 0; e < catchExceptions.size(); e++) {
|
||||
writer.appendNewLine();
|
||||
hilight("catch(" + catchExceptions.get(e).getVarName(constants, fullyQualifiedNames) + ":" + catchExceptions.get(e).getTypeName(constants, fullyQualifiedNames) + ")", writer);
|
||||
hilight("catch(" + catchExceptions.get(e).getVarName(localData.constantsAvm2, localData.fullyQualifiedNames) + ":" + catchExceptions.get(e).getTypeName(localData.constantsAvm2, localData.fullyQualifiedNames) + ")", writer);
|
||||
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, Helper.toList(constants, localRegNames, fullyQualifiedNames)).appendNewLine();
|
||||
ti.toStringSemicoloned(writer, localData.constants).appendNewLine();
|
||||
}
|
||||
}
|
||||
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
|
||||
@@ -87,7 +88,7 @@ public class TryAVM2Item extends AVM2Item implements Block {
|
||||
hilight(Graph.INDENTOPEN, writer).appendNewLine();
|
||||
for (GraphTargetItem ti : finallyCommands) {
|
||||
if (!ti.isEmpty()) {
|
||||
ti.toStringSemicoloned(writer, Helper.toList(constants, localRegNames, fullyQualifiedNames)).appendNewLine();
|
||||
ti.toStringSemicoloned(writer, localData.constants).appendNewLine();
|
||||
}
|
||||
}
|
||||
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
|
||||
|
||||
@@ -17,11 +17,14 @@
|
||||
package com.jpexs.decompiler.flash.abc.avm2.model.operations;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.action.model.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.ecma.EcmaScript;
|
||||
import com.jpexs.decompiler.flash.ecma.EcmaType;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.BinaryOpItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class AddAVM2Item extends BinaryOpItem {
|
||||
@@ -31,7 +34,7 @@ public class AddAVM2Item extends BinaryOpItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, List<Object> localData) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
if (rightSide.precedence >= precedence) { //string + vs number +
|
||||
if (leftSide.precedence > precedence) {
|
||||
hilight("(", writer);
|
||||
|
||||
+4
-3
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.flash.abc.avm2.model.AVM2Item;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.FullMultinameAVM2Item;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -37,11 +38,11 @@ public class DeletePropertyAVM2Item extends AVM2Item {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
hilight("delete ", writer);
|
||||
object.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
object.toString(writer, localData);
|
||||
hilight("[", writer);
|
||||
propertyName.toString(writer, constants, localRegNames, fullyQualifiedNames);
|
||||
propertyName.toString(writer, localData);
|
||||
return hilight("]", writer);
|
||||
}
|
||||
}
|
||||
|
||||
+4
-1
@@ -17,10 +17,13 @@
|
||||
package com.jpexs.decompiler.flash.abc.avm2.model.operations;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.decompiler.flash.action.model.ConstantPool;
|
||||
import com.jpexs.decompiler.flash.ecma.EcmaScript;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.BinaryOpItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class SubtractAVM2Item extends BinaryOpItem {
|
||||
@@ -35,7 +38,7 @@ public class SubtractAVM2Item extends BinaryOpItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, List<Object> localData) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
if (rightSide.precedence >= precedence) { // >= add or subtract too
|
||||
if (leftSide.precedence > precedence) {
|
||||
hilight("(", writer);
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.jpexs.decompiler.flash.helpers.hilight.Highlighting;
|
||||
import com.jpexs.decompiler.flash.tags.ABCContainerTag;
|
||||
import com.jpexs.decompiler.graph.Graph;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -92,7 +93,7 @@ public class TraitSlotConst extends Trait implements TraitWithSlot {
|
||||
}
|
||||
|
||||
if (assignedValue != null) {
|
||||
valueStr = Highlighting.trim(assignedValue.toString(highlight, abc.constants, new HashMap<Integer, String>(), fullyQualifiedNames));
|
||||
valueStr = Highlighting.trim(assignedValue.toString(highlight, LocalData.create(abc.constants, new HashMap<Integer, String>(), fullyQualifiedNames)));
|
||||
if (highlight && (parent instanceof TraitClass)) {
|
||||
TraitClass tc = (TraitClass) parent;
|
||||
int traitInitId = abc.class_info[tc.class_info].static_traits.traits.length
|
||||
|
||||
@@ -56,6 +56,7 @@ import com.jpexs.decompiler.graph.GraphSourceItemContainer;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.CommentItem;
|
||||
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.ScriptEndItem;
|
||||
import com.jpexs.helpers.Helper;
|
||||
@@ -726,7 +727,7 @@ public class Action implements GraphSourceItem {
|
||||
|
||||
List<GraphTargetItem> tree = actionsToTree(new HashMap<Integer, String>(), new HashMap<String, GraphTargetItem>(), new HashMap<String, GraphTargetItem>(), actions, version, staticOperation, path);
|
||||
|
||||
return Graph.graphToString(tree, highlight, true);
|
||||
return Graph.graphToString(tree, highlight, true, new LocalData());
|
||||
}
|
||||
}, timeout, TimeUnit.SECONDS);
|
||||
} catch (TimeoutException ex) {
|
||||
|
||||
@@ -40,6 +40,7 @@ import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItemContainer;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.NotCompileTimeItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import com.jpexs.helpers.ReReadableInputStream;
|
||||
import java.io.ByteArrayInputStream;
|
||||
@@ -667,12 +668,12 @@ public class ActionListReader {
|
||||
if (a instanceof GraphSourceItemContainer) {
|
||||
atos = a.toString();
|
||||
}
|
||||
System.err.println("readActionListAtPos ip: " + (ip - startIp) + " (0x" + Helper.formatAddress(ip - startIp) + ") " + " action(len " + a.actionLength + "): " + atos + (a.isIgnored() ? " (ignored)" : "") + " stack:" + Helper.stackToString(stack, Helper.toList(cpool)) + " " + Helper.byteArrToString(a.getBytes(version)));
|
||||
System.err.println("readActionListAtPos ip: " + (ip - startIp) + " (0x" + Helper.formatAddress(ip - startIp) + ") " + " action(len " + a.actionLength + "): " + atos + (a.isIgnored() ? " (ignored)" : "") + " stack:" + Helper.stackToString(stack, LocalData.create(cpool)) + " " + Helper.byteArrToString(a.getBytes(version)));
|
||||
@SuppressWarnings("unchecked")
|
||||
HashMap<String, GraphTargetItem> vars = (HashMap<String, GraphTargetItem>) localData.get(1);
|
||||
System.err.print("variables: ");
|
||||
for (Map.Entry<String, GraphTargetItem> v : vars.entrySet()) {
|
||||
System.err.print("'" + v + "' = " + v.getValue().toString(false, cpool) + ", ");
|
||||
System.err.print("'" + v + "' = " + v.getValue().toString(false, LocalData.create(cpool)) + ", ");
|
||||
}
|
||||
System.err.println();
|
||||
String add = "";
|
||||
|
||||
@@ -22,8 +22,10 @@ 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.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class ActionItem extends GraphTargetItem implements Serializable {
|
||||
@@ -38,11 +40,6 @@ public abstract class ActionItem extends GraphTargetItem implements Serializable
|
||||
|
||||
public abstract HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants);
|
||||
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer) {
|
||||
ConstantPool c = null;
|
||||
return toString(writer, c);
|
||||
}
|
||||
|
||||
protected boolean isEmptyString(GraphTargetItem target) {
|
||||
if (target instanceof DirectValueActionItem) {
|
||||
if (((DirectValueActionItem) target).value instanceof String) {
|
||||
@@ -69,12 +66,8 @@ public abstract class ActionItem extends GraphTargetItem implements Serializable
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, List<Object> localData) {
|
||||
if (localData.isEmpty()) {
|
||||
ConstantPool c = null;
|
||||
return toString(writer, c);
|
||||
}
|
||||
return toString(writer, (ConstantPool) localData.get(0));
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return toString(writer, localData.constants);
|
||||
}
|
||||
|
||||
protected List<GraphSourceItem> toSourceCall(List<Object> localData, SourceGenerator gen, List<GraphTargetItem> list) {
|
||||
|
||||
@@ -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 CallFunctionActionItem extends ActionItem {
|
||||
@@ -50,7 +51,7 @@ public class CallFunctionActionItem extends ActionItem {
|
||||
if (t > 0) {
|
||||
hilight(",", writer);
|
||||
}
|
||||
arguments.get(t).toStringNL(writer, constants);
|
||||
arguments.get(t).toStringNL(writer, LocalData.create(constants));
|
||||
}
|
||||
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;
|
||||
|
||||
@@ -79,7 +80,7 @@ public class CallMethodActionItem extends ActionItem {
|
||||
if (t > 0) {
|
||||
hilight(",", writer);
|
||||
}
|
||||
arguments.get(t).toStringNL(writer, constants);
|
||||
arguments.get(t).toStringNL(writer, LocalData.create(constants));
|
||||
}
|
||||
|
||||
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.helpers.Helper;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -50,7 +51,7 @@ public class CastOpActionItem extends ActionItem {
|
||||
hilight("(", writer);
|
||||
stripQuotes(constructor, constants, writer);
|
||||
hilight(")", writer);
|
||||
return object.toString(writer, Helper.toList(constants));
|
||||
return object.toString(writer, LocalData.create(constants));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -86,7 +86,7 @@ public class DirectValueActionItem extends ActionItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toStringNoQuotes(HilightedTextWriter writer, List<Object> localData) {
|
||||
public HilightedTextWriter toStringNoQuotes(HilightedTextWriter writer, ConstantPool constants) {
|
||||
if (value instanceof Double) {
|
||||
if (Double.compare((double) (Double) value, 0) == 0) {
|
||||
return hilight("0", writer);
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItemPos;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -43,7 +44,7 @@ public class EnumerateActionItem extends ActionItem {
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
|
||||
hilight("enumerate ", writer);
|
||||
return object.toString(writer, Helper.toList(constants));
|
||||
return object.toString(writer, LocalData.create(constants));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItemPos;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -36,9 +37,7 @@ public class ExtendsActionItem extends ActionItem {
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
|
||||
List<Object> localData = new ArrayList<>();
|
||||
localData.add(constants);
|
||||
subclass.toString(writer, localData);
|
||||
subclass.toString(writer, LocalData.create(constants));
|
||||
hilight(" extends ", writer);
|
||||
return stripQuotes(superclass, constants, writer);
|
||||
}
|
||||
|
||||
@@ -30,6 +30,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.helpers.Helper;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -98,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, constants));
|
||||
writer.appendNoHilight(Graph.graphToString(actions, writer.getIsHighlighted(), false, LocalData.create(constants)));
|
||||
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
|
||||
return hilight("}", writer);
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItemPos;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.util.List;
|
||||
|
||||
@@ -36,13 +37,13 @@ public class ImplementsOpActionItem extends ActionItem {
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
|
||||
subclass.toString(writer, Helper.toList(constants));
|
||||
subclass.toString(writer, LocalData.create(constants));
|
||||
hilight(" implements ", writer);
|
||||
for (int i = 0; i < superclasses.size(); i++) {
|
||||
if (i > 0) {
|
||||
hilight(",", writer);
|
||||
}
|
||||
superclasses.get(i).toString(writer, Helper.toList(constants));
|
||||
superclasses.get(i).toString(writer, LocalData.create(constants));
|
||||
}
|
||||
return writer;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ package com.jpexs.decompiler.flash.action.model;
|
||||
import com.jpexs.decompiler.flash.helpers.HilightedTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItemPos;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -45,7 +47,7 @@ public class TemporaryRegister extends GraphTargetItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, List<Object> localData) {
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, LocalData localData) {
|
||||
return value.toString(writer, localData);
|
||||
}
|
||||
|
||||
|
||||
@@ -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.helpers.Helper;
|
||||
import java.util.List;
|
||||
|
||||
@@ -35,7 +36,7 @@ public class ThrowActionItem extends ActionItem {
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
|
||||
hilight("throw ", writer);
|
||||
return value.toString(writer, Helper.toList(constants));
|
||||
return value.toString(writer, LocalData.create(constants));
|
||||
}
|
||||
|
||||
@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 com.jpexs.helpers.Helper;
|
||||
import java.util.List;
|
||||
|
||||
@@ -35,7 +36,7 @@ public class ToNumberActionItem extends ActionItem {
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
|
||||
hilight("Number(", writer);
|
||||
value.toString(writer, Helper.toList(constants));
|
||||
value.toString(writer, LocalData.create(constants));
|
||||
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.helpers.Helper;
|
||||
import java.util.List;
|
||||
|
||||
@@ -35,7 +36,7 @@ public class ToStringActionItem extends ActionItem {
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
|
||||
hilight("String(", writer);
|
||||
value.toString(writer, Helper.toList(constants));
|
||||
value.toString(writer, LocalData.create(constants));
|
||||
return hilight(")", 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 com.jpexs.helpers.Helper;
|
||||
import java.util.List;
|
||||
|
||||
@@ -37,7 +38,7 @@ public class TypeOfActionItem extends ActionItem {
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
|
||||
hilight("typeof(", writer);
|
||||
value.toString(writer, Helper.toList(constants));
|
||||
value.toString(writer, LocalData.create(constants));
|
||||
return hilight(")", writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -85,11 +85,11 @@ public class ClassActionItem extends ActionItem implements Block {
|
||||
}
|
||||
Set<String> allMembers = new HashSet<>();
|
||||
for (GraphTargetItem it : allUsages) {
|
||||
allMembers.add(it.toStringNoQuotes(false, new ArrayList<>()));
|
||||
allMembers.add(it.toStringNoQuotes(false, null));
|
||||
}
|
||||
uninitializedVars.addAll(allMembers);
|
||||
for (MyEntry<GraphTargetItem, GraphTargetItem> v : vars) {
|
||||
String s = v.key.toStringNoQuotes(false, new ArrayList<>());
|
||||
String s = v.key.toStringNoQuotes(false, null);
|
||||
if (uninitializedVars.contains(s)) {
|
||||
uninitializedVars.remove(s);
|
||||
}
|
||||
@@ -158,10 +158,10 @@ public class ClassActionItem extends ActionItem implements Block {
|
||||
@Override
|
||||
public HilightedTextWriter toString(HilightedTextWriter writer, ConstantPool constants) {
|
||||
hilight("class ", writer);
|
||||
className.toStringNoQuotes(writer, Helper.toList(constants));
|
||||
className.toStringNoQuotes(writer, constants);
|
||||
if (extendsOp != null) {
|
||||
hilight(" extends ", writer);
|
||||
extendsOp.toStringNoQuotes(writer, Helper.toList(constants));
|
||||
extendsOp.toStringNoQuotes(writer, constants);
|
||||
}
|
||||
if (!implementsOp.isEmpty()) {
|
||||
hilight(" implements ", writer);
|
||||
|
||||
+2
-1
@@ -26,6 +26,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;
|
||||
|
||||
@@ -51,7 +52,7 @@ public class IfFrameLoadedActionItem extends ActionItem implements Block {
|
||||
hilight(")", writer).appendNewLine();
|
||||
hilight("{", writer).appendNewLine();
|
||||
hilight(Graph.INDENTOPEN, writer).appendNewLine();
|
||||
writer.appendNoHilight(Graph.graphToString(actions, writer.getIsHighlighted(), false, constants));
|
||||
writer.appendNoHilight(Graph.graphToString(actions, writer.getIsHighlighted(), false, LocalData.create(constants)));
|
||||
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
|
||||
return hilight("}", writer);
|
||||
}
|
||||
|
||||
@@ -62,11 +62,9 @@ public class TryActionItem extends ActionItem implements Block {
|
||||
hilight("try", writer).appendNewLine();
|
||||
hilight("{", writer).appendNewLine();
|
||||
hilight(Graph.INDENTOPEN, writer).appendNewLine();
|
||||
List<Object> localData = new ArrayList<>();
|
||||
localData.add(constants);
|
||||
for (GraphTargetItem ti : tryCommands) {
|
||||
if (!ti.isEmpty()) {
|
||||
ti.toStringSemicoloned(writer, localData).appendNewLine();
|
||||
ti.toStringSemicoloned(writer, constants).appendNewLine();
|
||||
}
|
||||
}
|
||||
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
|
||||
@@ -74,14 +72,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, localData);
|
||||
catchExceptions.get(e).toStringNoQuotes(writer, constants);
|
||||
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, localData).appendNewLine();
|
||||
ti.toStringSemicoloned(writer, constants).appendNewLine();
|
||||
}
|
||||
}
|
||||
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
|
||||
@@ -94,7 +92,7 @@ public class TryActionItem extends ActionItem implements Block {
|
||||
hilight(Graph.INDENTOPEN, writer).appendNewLine();
|
||||
for (GraphTargetItem ti : finallyCommands) {
|
||||
if (!ti.isEmpty()) {
|
||||
ti.toStringSemicoloned(writer, localData).appendNewLine();
|
||||
ti.toStringSemicoloned(writer, constants).appendNewLine();
|
||||
}
|
||||
}
|
||||
hilight(Graph.INDENTCLOSE, writer).appendNewLine();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user