AS1/2: DefineFunction push registers cleanup - remove insideDefineFunction1 parameter,

execute the cleanup for whole script as decompiler adapter,
fixing bugs in the cleanup and refactoring.
This commit is contained in:
Jindra Petřík
2018-01-31 07:24:45 +01:00
parent a7f457ad9d
commit 2f9c44db30
109 changed files with 293 additions and 214 deletions

View File

@@ -2035,7 +2035,7 @@ public final class SWF implements SWFContainerItem, Timelined {
ip = code.adr2pos(addr);
addr += size;
int nextip = code.adr2pos(addr);
getVariables(aLocalData.insideDoInitAction, variables, functions, strings, usageTypes, new ActionGraphSource(path, aLocalData.insideDoInitAction, (ins instanceof ActionDefineFunction), code.getActions().subList(ip, nextip), code.version, new HashMap<>(), new HashMap<>(), new HashMap<>()), 0, path + (cntName == null ? "" : "/" + cntName));
getVariables(aLocalData.insideDoInitAction, variables, functions, strings, usageTypes, new ActionGraphSource(path, aLocalData.insideDoInitAction, code.getActions().subList(ip, nextip), code.version, new HashMap<>(), new HashMap<>(), new HashMap<>()), 0, path + (cntName == null ? "" : "/" + cntName));
ip = nextip;
}
List<List<GraphTargetItem>> r = new ArrayList<>();
@@ -2136,7 +2136,7 @@ public final class SWF implements SWFContainerItem, Timelined {
ActionList actions = src.getActions();
actionsMap.put(src, actions);
boolean insideDoInitAction = src instanceof DoInitActionTag;
getVariables(insideDoInitAction, variables, functions, strings, usageTypes, new ActionGraphSource(path, insideDoInitAction, insideDefineFunction1, actions, version, new HashMap<>(), new HashMap<>(), new HashMap<>()), 0, path);
getVariables(insideDoInitAction, variables, functions, strings, usageTypes, new ActionGraphSource(path, insideDoInitAction, actions, version, new HashMap<>(), new HashMap<>(), new HashMap<>()), 0, path);
return ret;
}
@@ -2292,7 +2292,7 @@ public final class SWF implements SWFContainerItem, Timelined {
int staticOperation = Graph.SOP_USE_STATIC; //(Boolean) Configuration.getConfig("autoDeobfuscate", true) ? Graph.SOP_SKIP_STATIC : Graph.SOP_USE_STATIC;
List<GraphTargetItem> dec;
try {
dec = Action.actionsToTree(true /*Yes, inside doInitAction*/, false, dia.getActions(), version, staticOperation, ""/*FIXME*/);
dec = Action.actionsToTree(true /*Yes, inside doInitAction*/, dia.getActions(), version, staticOperation, ""/*FIXME*/);
} catch (EmptyStackException ex) {
continue;
}
@@ -2989,7 +2989,8 @@ public final class SWF implements SWFContainerItem, Timelined {
timelined.setModified(true);
timelined.resetTimeline();
} else // timeline should be always the swf here
if (removeDependencies) {
{
if (removeDependencies) {
removeTagWithDependenciesFromTimeline(tag, timelined.getTimeline());
timelined.setModified(true);
} else {
@@ -2998,6 +2999,7 @@ public final class SWF implements SWFContainerItem, Timelined {
timelined.setModified(true);
}
}
}
}
@Override

View File

@@ -760,7 +760,7 @@ public abstract class Action implements GraphSourceItem {
* @param path the value of path
* @throws java.lang.InterruptedException
*/
public void translate(boolean insideDoInitAction, boolean insideDefineFunction1, GraphSourceItem lineStartIns, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) throws InterruptedException {
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartIns, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) throws InterruptedException {
}
@Override
@@ -836,8 +836,8 @@ public abstract class Action implements GraphSourceItem {
return -1;
}
public static List<GraphTargetItem> actionsToTree(boolean insideDoInitAction, boolean insideDefineFunction1, List<Action> actions, int version, int staticOperation, String path) throws InterruptedException {
return actionsToTree(insideDoInitAction, insideDefineFunction1, new HashMap<>(), new HashMap<>(), new HashMap<>(), actions, version, staticOperation, path);
public static List<GraphTargetItem> actionsToTree(boolean insideDoInitAction, List<Action> actions, int version, int staticOperation, String path) throws InterruptedException {
return actionsToTree(insideDoInitAction, new HashMap<>(), new HashMap<>(), new HashMap<>(), actions, version, staticOperation, path);
}
/**
@@ -863,7 +863,7 @@ public abstract class Action implements GraphSourceItem {
public List<GraphTargetItem> call() throws Exception {
int staticOperation = Graph.SOP_USE_STATIC; //(Boolean) Configuration.getConfig("autoDeobfuscate", true) ? Graph.SOP_SKIP_STATIC : Graph.SOP_USE_STATIC;
boolean insideDoInitAction = (asm instanceof DoInitActionTag);
List<GraphTargetItem> tree = actionsToTree(insideDoInitAction, false, new HashMap<>(), new HashMap<>(), new HashMap<>(), actions, version, staticOperation, path);
List<GraphTargetItem> tree = actionsToTree(insideDoInitAction, new HashMap<>(), new HashMap<>(), new HashMap<>(), actions, version, staticOperation, path);
SWFDecompilerPlugin.fireActionTreeCreated(tree, swf);
if (Configuration.autoDeobfuscate.get()) {
new ActionDeobfuscator().actionTreeCreated(tree, swf);
@@ -921,8 +921,8 @@ public abstract class Action implements GraphSourceItem {
* @return List of treeItems
* @throws java.lang.InterruptedException
*/
public static List<GraphTargetItem> actionsToTree(boolean insideDoInitAction, boolean insideDefineFunction1, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, List<Action> actions, int version, int staticOperation, String path) throws InterruptedException {
return ActionGraph.translateViaGraph(insideDoInitAction, insideDefineFunction1, regNames, variables, functions, actions, version, staticOperation, path);
public static List<GraphTargetItem> actionsToTree(boolean insideDoInitAction, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, List<Action> actions, int version, int staticOperation, String path) throws InterruptedException {
return ActionGraph.translateViaGraph(insideDoInitAction, regNames, variables, functions, actions, version, staticOperation, path);
}
@Override
@@ -934,7 +934,7 @@ public abstract class Action implements GraphSourceItem {
}
expectedSize += getStackPushCount(localData, stack);*/
translate(aLocalData.insideDoInitAction, aLocalData.insideDefineFunction1, aLocalData.lineStartAction, stack, output, aLocalData.regNames, aLocalData.variables, aLocalData.functions, staticOperation, path);
translate(aLocalData.insideDoInitAction, aLocalData.lineStartAction, stack, output, aLocalData.regNames, aLocalData.variables, aLocalData.functions, staticOperation, path);
/*if (stack.size() != expectedSize && !(this instanceof ActionPushDuplicate)) {
throw new Error("HONFIKA stack size mismatch");
}*/
@@ -970,7 +970,7 @@ public abstract class Action implements GraphSourceItem {
this.ignored = ignored;
}
public static List<GraphTargetItem> actionsPartToTree(boolean insideDoInitAction, boolean insideDefineFunction1, Reference<GraphSourceItem> fi, HashMap<Integer, String> registerNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, TranslateStack stack, List<Action> actions, int start, int end, int version, int staticOperation, String path) throws InterruptedException {
public static List<GraphTargetItem> actionsPartToTree(boolean insideDoInitAction, Reference<GraphSourceItem> fi, HashMap<Integer, String> registerNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, TranslateStack stack, List<Action> actions, int start, int end, int version, int staticOperation, String path) throws InterruptedException {
if (start < actions.size() && (end > 0) && (start > 0)) {
logger.log(Level.FINE, "Entering {0}-{1}{2}", new Object[]{start, end, actions.size() > 0 ? (" (" + actions.get(start).toString() + " - " + actions.get(end == actions.size() ? end - 1 : end) + ")") : ""});
}
@@ -1044,7 +1044,7 @@ public abstract class Action implements GraphSourceItem {
}
}
}
out = ActionGraph.translateViaGraph(insideDoInitAction, (cnt instanceof ActionDefineFunction), regNames, variables2, functions, actions.subList(adr2ip(actions, endAddr), adr2ip(actions, endAddr + size)), version, staticOperation, path + (cntName == null ? "" : "/" + cntName));
out = ActionGraph.translateViaGraph(insideDoInitAction, regNames, variables2, functions, actions.subList(adr2ip(actions, endAddr), adr2ip(actions, endAddr + size)), version, staticOperation, path + (cntName == null ? "" : "/" + cntName));
} catch (OutOfMemoryError | TranslateException | StackOverflowError ex) {
logger.log(Level.SEVERE, "Decompilation error in: " + path, ex);
if (ex instanceof OutOfMemoryError) {

View File

@@ -16,13 +16,16 @@
*/
package com.jpexs.decompiler.flash.action;
import com.jpexs.decompiler.flash.SWF;
import com.jpexs.decompiler.flash.action.swf4.ActionJump;
import com.jpexs.decompiler.flash.action.swf4.ActionPop;
import com.jpexs.decompiler.flash.action.swf4.ActionPush;
import com.jpexs.decompiler.flash.action.swf4.RegisterNumber;
import com.jpexs.decompiler.flash.action.swf5.ActionDefineFunction;
import com.jpexs.decompiler.flash.action.swf5.ActionReturn;
import com.jpexs.decompiler.flash.action.swf5.ActionStoreRegister;
import com.jpexs.decompiler.flash.ecma.Undefined;
import com.jpexs.decompiler.flash.helpers.SWFDecompilerAdapter;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
@@ -44,13 +47,39 @@ import java.util.TreeSet;
*
* @author JPEXS
*/
public class ActionDefineFunctionPushRegistersCleaner {
public class ActionDefineFunctionPushRegistersCleaner extends SWFDecompilerAdapter {
public List<Action> cleanPushRegisters(List<Action> code) {
ActionList actionList = new ActionList(code);
@Override
public void actionListParsed(ActionList actions, SWF swf) throws InterruptedException {
cleanActionDefineFunctions(actions);
}
if (actionList.isEmpty()) {
return code;
private void cleanActionDefineFunctions(ActionList actions) {
for (int i = actions.size() - 1; i >= 0; i--) {
Action action = actions.get(i);
if (action instanceof ActionDefineFunction) {
ActionDefineFunction def = (ActionDefineFunction) action;
List<Long> sizes = def.getContainerSizes();
long endAddress = action.getAddress() + def.getHeaderSize() + sizes.get(0);
int lastIndex = actions.getIndexByAddress(endAddress);
int startIndex = i + 1;
int count = lastIndex - startIndex;
cleanPushRegisters(actions, startIndex, count);
}
}
}
/**
*
* @param code
* @param startIndex Index of first Action in DefineFunction body
* @param count Count of actions in DefineFunction
* @return
*/
private boolean cleanPushRegisters(ActionList code, int startIndex, int count) {
if (count == 0) {
return false;
}
/*
@@ -58,10 +87,10 @@ public class ActionDefineFunctionPushRegistersCleaner {
Push register1 register2 normalval
*/
List<Integer> pushedRegisters = new ArrayList<>();
int pos = 0;
int pos = startIndex;
loopregs:
while (actionList.get(pos) instanceof ActionPush) {
ActionPush ap = (ActionPush) actionList.get(pos);
while (code.get(pos) instanceof ActionPush) {
ActionPush ap = (ActionPush) code.get(pos);
for (int i = 0; i < ap.values.size(); i++) {
if (ap.values.get(i) instanceof RegisterNumber) {
RegisterNumber rn = (RegisterNumber) ap.values.get(i);
@@ -71,9 +100,12 @@ public class ActionDefineFunctionPushRegistersCleaner {
}
}
pos++;
if (pos >= code.size()) {
return false;
}
}
if (pushedRegisters.isEmpty()) {
return code;
return false;
}
/*
@@ -95,131 +127,165 @@ public class ActionDefineFunctionPushRegistersCleaner {
StoreRegister 1
Pop
when original function has some returns, but no return at the end of function:
Push undefined
locjump: StoreRegister 0
Pop
...
*/
int returnReg = -1;
pos = actionList.size() - 1;
if (actionList.get(pos) instanceof ActionReturn) {
pos = startIndex + count - 1;
if (code.get(pos) instanceof ActionReturn) {
pos--;
if (pos == -1) {
return code;
if (pos < startIndex) {
return false;
}
if (!(actionList.get(pos) instanceof ActionPush)) {
return code;
if (!(code.get(pos) instanceof ActionPush)) {
return false;
}
ActionPush pu = (ActionPush) actionList.get(pos);
ActionPush pu = (ActionPush) code.get(pos);
if (pu.values.size() != 1) {
return code;
return false;
}
if (!(pu.values.get(0) instanceof RegisterNumber)) {
return code;
return false;
}
RegisterNumber rn = (RegisterNumber) pu.values.get(0);
returnReg = rn.number;
pos--;
if (pos == -1) {
return code;
if (pos < startIndex) {
return false;
}
}
for (int i = 0; i < pushedRegisters.size(); i++) {
if (!(actionList.get(pos) instanceof ActionPop)) {
return code;
if (!(code.get(pos) instanceof ActionPop)) {
return false;
}
pos--;
if (pos == -1) {
return code;
if (pos < startIndex) {
return false;
}
if (!(actionList.get(pos) instanceof ActionStoreRegister)) {
return code;
if (!(code.get(pos) instanceof ActionStoreRegister)) {
return false;
}
ActionStoreRegister asr = (ActionStoreRegister) actionList.get(pos);
ActionStoreRegister asr = (ActionStoreRegister) code.get(pos);
int expectedReg = pushedRegisters.get(i);
if (asr.registerNumber != expectedReg) {
return code;
return false;
}
pos--;
if (pos == -1) {
return code;
if (pos < startIndex) {
return false;
}
}
Set<Integer> refPos = new TreeSet<>(new Comparator<Integer>() {
Set<Integer> jumpsToReturnPositions = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1; //biggest first
}
});
int posBeforeFinishPart;
Action actionBeforeFinishPart = null;
if (returnReg > -1) {
if (!(actionList.get(pos) instanceof ActionPop)) {
return code;
if (!(code.get(pos) instanceof ActionPop)) {
return false;
}
pos--;
if (pos == -1) {
return code;
if (pos < startIndex) {
return false;
}
if (!(actionList.get(pos) instanceof ActionStoreRegister)) {
return code;
if (!(code.get(pos) instanceof ActionStoreRegister)) {
return false;
}
ActionStoreRegister asr = (ActionStoreRegister) actionList.get(pos);
ActionStoreRegister asr = (ActionStoreRegister) code.get(pos);
int expectedReg = returnReg;
if (asr.registerNumber != expectedReg) {
return code;
return false;
}
if (!(actionList.get(pos - 1) instanceof ActionJump)) {
refPos.add(pos - 1);
}
Iterator<Action> ait = actionList.getReferencesFor(asr);
Iterator<Action> ait = code.getReferencesFor(asr);
while (ait.hasNext()) {
Action a = ait.next();
refPos.add(actionList.indexOf(a));
if (!(a instanceof ActionJump)) {
return false;
}
jumpsToReturnPositions.add(code.indexOf(a));
}
pos--;
if (!(code.get(pos) instanceof ActionJump)) {
actionBeforeFinishPart = code.get(pos);
}
posBeforeFinishPart = pos;
} else {
posBeforeFinishPart = pos;
}
//process code...
//TODO: make this somehow create new list instead of modifying current one
for (Integer jp : refPos) {
//replace jumps to return with returns
for (Integer jp : jumpsToReturnPositions) {
int index = jp;
Action a = actionList.get(index);
if (a instanceof ActionJump) {
actionList.remove(index);
actionList.addAction(index, new ActionReturn());
} else if ((a instanceof ActionPush) && ((ActionPush) a).values.size() == 1 && ((ActionPush) a).values.get(0) == Undefined.INSTANCE) {
actionList.remove(a);
} else {
actionList.addAction(index + 1, new ActionReturn());
pos++;
code.removeAction(index);
code.addAction(index, new ActionReturn());
}
//previous action (not jump) also leads to finishpart, we might add return there aswell
if (returnReg > -1 && actionBeforeFinishPart != null) {
if ((actionBeforeFinishPart instanceof ActionPush) && ((ActionPush) actionBeforeFinishPart).values.size() == 1 && ((ActionPush) actionBeforeFinishPart).values.get(0) == Undefined.INSTANCE) {
//its return undefined, which is same as no return
code.removeAction(posBeforeFinishPart);
posBeforeFinishPart--;
count--;
} else if (actionBeforeFinishPart instanceof ActionReturn) {
//it was a jump that was replaced with Return
} else if (actionBeforeFinishPart instanceof ActionJump) {
//its jump to another location, we will not add return there
} else { //might be another returned value
posBeforeFinishPart++;
code.addAction(posBeforeFinishPart, new ActionReturn());
count++; //action added, but not removed, we increase total count
}
}
int posFromEnd = actionList.size() - pos - 1;
//remove finishPart
int removeStartIndex = posBeforeFinishPart + 1;
int removeCount = startIndex + count - removeStartIndex;
code.removeAction(removeStartIndex, removeCount);
actionList.removeAction(actionList.size() - posFromEnd, posFromEnd);
pos = 0;
int removedCnt = pushedRegisters.size();
//remove pushes from beginning part
pos = startIndex;
int registersLeft = pushedRegisters.size();
loopregs2:
while (actionList.get(pos) instanceof ActionPush) {
ActionPush ap = (ActionPush) actionList.get(pos);
for (int i = 0; i < ap.values.size(); i++) {
if (ap.values.get(i) instanceof RegisterNumber) {
ap.values.remove(i);
i--;
removedCnt--;
if (ap.values.isEmpty()) {
actionList.removeAction(pos);
}
if (removedCnt == 0) {
break loopregs2;
}
while (code.get(pos) instanceof ActionPush) {
ActionPush currentPush = (ActionPush) code.get(pos);
List<Object> currentPushedValues = currentPush.values;
List<Object> newPushedValues = new ArrayList<>();
for (int i = 0; i < currentPushedValues.size(); i++) {
if (registersLeft > 0 && currentPushedValues.get(i) instanceof RegisterNumber) {
registersLeft--;
} else {
break loopregs2;
newPushedValues.add(currentPushedValues.get(i));
}
}
if (newPushedValues.size() != currentPushedValues.size()) {
code.removeAction(pos); //remove that push
if (!newPushedValues.isEmpty()) {
ActionPush newPush = new ActionPush(newPushedValues.toArray());
newPush.constantPool = currentPush.constantPool;
code.addAction(pos, newPush); //replace with different push
} else {
pos--; //action removed, but not added
}
}
if (registersLeft == 0) { //we removed all unwanted registers
break;
}
pos++;
}
return actionList;
return true;
}
}

View File

@@ -66,8 +66,8 @@ public class ActionGraph extends Graph {
private boolean insideDoInitAction;
public ActionGraph(String path, boolean insideDoInitAction, boolean insideDefineFunction1, List<Action> code, HashMap<Integer, String> registerNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int version) {
super(new ActionGraphSource(path, insideDoInitAction, insideDefineFunction1, code, version, registerNames, variables, functions), new ArrayList<>());
public ActionGraph(String path, boolean insideDoInitAction, List<Action> code, HashMap<Integer, String> registerNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int version) {
super(new ActionGraphSource(path, insideDoInitAction, code, version, registerNames, variables, functions), new ArrayList<>());
this.insideDoInitAction = insideDoInitAction;
}
@@ -80,12 +80,8 @@ public class ActionGraph extends Graph {
}
public static List<GraphTargetItem> translateViaGraph(boolean insideDoInitAction, boolean insideDefineFunction1, HashMap<Integer, String> registerNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, List<Action> code, int version, int staticOperation, String path) throws InterruptedException {
if (insideDefineFunction1) {
ActionDefineFunctionPushRegistersCleaner fixer = new ActionDefineFunctionPushRegistersCleaner();
code = fixer.cleanPushRegisters(code);
}
ActionGraph g = new ActionGraph(path, insideDoInitAction, insideDefineFunction1, code, registerNames, variables, functions, version);
public static List<GraphTargetItem> translateViaGraph(boolean insideDoInitAction, HashMap<Integer, String> registerNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, List<Action> code, int version, int staticOperation, String path) throws InterruptedException {
ActionGraph g = new ActionGraph(path, insideDoInitAction, code, registerNames, variables, functions, version);
ActionLocalData localData = new ActionLocalData(insideDoInitAction, registerNames);
g.init(localData);
return g.translate(localData, staticOperation, path);

View File

@@ -48,22 +48,19 @@ public class ActionGraphSource extends GraphSource {
private final boolean insideDoInitAction;
private final boolean insideDefineFunction1;
private final String path;
public List<Action> getActions() {
return actions;
}
public ActionGraphSource(String path, boolean insideDoInitAction, boolean insideDefineFunction1, List<Action> actions, int version, HashMap<Integer, String> registerNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions) {
public ActionGraphSource(String path, boolean insideDoInitAction, List<Action> actions, int version, HashMap<Integer, String> registerNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions) {
this.actions = actions;
this.version = version;
this.registerNames = registerNames;
this.variables = variables;
this.functions = functions;
this.insideDoInitAction = insideDoInitAction;
this.insideDefineFunction1 = insideDefineFunction1;
this.path = path;
}
@@ -90,7 +87,7 @@ public class ActionGraphSource extends GraphSource {
public List<GraphTargetItem> translatePart(GraphPart part, BaseLocalData localData, TranslateStack stack, int start, int end, int staticOperation, String path) throws InterruptedException {
Reference<GraphSourceItem> fi = new Reference<>(localData.lineStartInstruction);
List<GraphTargetItem> r = Action.actionsPartToTree(this.insideDoInitAction, this.insideDefineFunction1, fi, registerNames, variables, functions, stack, actions, start, end, version, staticOperation, path);
List<GraphTargetItem> r = Action.actionsPartToTree(this.insideDoInitAction, fi, registerNames, variables, functions, stack, actions, start, end, version, staticOperation, path);
localData.lineStartInstruction = fi.getVal();
return r;
}

View File

@@ -12,7 +12,8 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
* License along with this library.
*/
package com.jpexs.decompiler.flash.action;
import com.jpexs.decompiler.flash.DisassemblyListener;
@@ -31,7 +32,11 @@ import com.jpexs.decompiler.flash.configuration.Configuration;
import com.jpexs.decompiler.flash.helpers.SWFDecompilerPlugin;
import com.jpexs.decompiler.graph.GraphSourceItemContainer;
import com.jpexs.helpers.CancellableWorker;
import com.jpexs.helpers.Helper;
import com.jpexs.helpers.stat.Statistics;
import com.jpexs.helpers.utf8.Utf8Helper;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
@@ -163,6 +168,15 @@ public class ActionListReader {
}
}
//TODO: This cleaner needs to be executed only before actual decompilation, not when disassembly only
try {
new ActionDefineFunctionPushRegistersCleaner().actionListParsed(actions, sis.getSwf());
} catch (ThreadDeath | InterruptedException ex) {
throw ex;
} catch (Throwable ex) {
logger.log(Level.SEVERE, "Cleaning push registers in ActionDefineFunction failed: " + path, ex);
}
return actions;
}

View File

@@ -37,8 +37,6 @@ public class ActionLocalData extends BaseLocalData {
public boolean insideDoInitAction;
public boolean insideDefineFunction1 = false;
public ActionLocalData(boolean insideDoInitAction) {
regNames = new HashMap<>();
variables = new HashMap<>();

View File

@@ -12,7 +12,8 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
* License along with this library.
*/
package com.jpexs.decompiler.flash.action.deobfuscation;
import com.jpexs.decompiler.flash.IdentifiersDeobfuscation;

View File

@@ -12,7 +12,8 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
* License along with this library.
*/
package com.jpexs.decompiler.flash.action.flashlite;
import com.jpexs.decompiler.flash.BaseLocalData;
@@ -42,7 +43,7 @@ public class ActionFSCommand2 extends Action {
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartItem, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
long numArgs = popLong(stack);
GraphTargetItem command = stack.pop();
List<GraphTargetItem> args = new ArrayList<>();

View File

@@ -12,7 +12,8 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
* License along with this library.
*/
package com.jpexs.decompiler.flash.action.flashlite;
import com.jpexs.decompiler.flash.SWFInputStream;
@@ -73,7 +74,7 @@ public class ActionStrictMode extends Action {
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartItem, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
output.add(new StrictModeActionItem(this, lineStartItem, mode));
}
}

View File

@@ -12,7 +12,8 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
* License along with this library.
*/
package com.jpexs.decompiler.flash.action.special;
import com.jpexs.decompiler.flash.action.Action;
@@ -52,7 +53,7 @@ public class ActionEnd extends Action {
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartItem, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
//output.add(new SimpleActionTreeItem(this, "end()"));
}
}

View File

@@ -12,7 +12,8 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
* License along with this library.
*/
package com.jpexs.decompiler.flash.action.special;
import com.jpexs.decompiler.flash.action.Action;
@@ -48,7 +49,7 @@ public class ActionNop extends Action {
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartItem, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
//output.add(new SimpleActionTreeItem(this, "nop();"));
}
}

View File

@@ -12,7 +12,8 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
* License along with this library.
*/
package com.jpexs.decompiler.flash.action.special;
import com.jpexs.decompiler.flash.action.LocalDataArea;
@@ -45,6 +46,6 @@ public class ActionUnknown extends ActionNop {
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartItem, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
}
}

View File

@@ -97,7 +97,7 @@ public class ActionGetURL extends Action {
return "GetUrl \"" + Helper.escapeActionScriptString(urlString) + "\" \"" + Helper.escapeActionScriptString(targetString) + "\"";
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
String fsCommandPrefix = "FSCommand:";
if (urlString.startsWith(fsCommandPrefix) && targetString.isEmpty()) {

View File

@@ -86,7 +86,7 @@ public class ActionGoToLabel extends Action {
label = lexString(lexer);
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
output.add(new GotoLabelActionItem(this, lineStartAction, label));
}

View File

@@ -82,7 +82,7 @@ public class ActionGotoFrame extends Action {
frame = (int) lexLong(lexer);
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
output.add(new GotoFrameActionItem(this, lineStartAction, frame));
}

View File

@@ -53,7 +53,7 @@ public class ActionNextFrame extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
output.add(new NextFrameActionItem(this, lineStartAction));
}

View File

@@ -52,7 +52,7 @@ public class ActionPlay extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
if (!output.isEmpty() && (output.get(output.size() - 1) instanceof GotoFrameActionItem)) {
GotoFrameActionItem gta = (GotoFrameActionItem) output.remove(output.size() - 1);

View File

@@ -53,7 +53,7 @@ public class ActionPrevFrame extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
output.add(new PrevFrameActionItem(this, lineStartAction));
}

View File

@@ -90,7 +90,7 @@ public class ActionSetTarget extends Action {
targetName = lexString(lexer);
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
output.add(new SetTargetActionItem(this, lineStartAction, targetName));
}

View File

@@ -49,7 +49,7 @@ public class ActionStop extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
output.add(new StopActionItem(this, lineStartAction));
}

View File

@@ -48,7 +48,7 @@ public class ActionStopSounds extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
output.add(new StopAllSoundsActionItem(this, lineStartAction));
}

View File

@@ -48,7 +48,7 @@ public class ActionToggleQuality extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
output.add(new ToggleHighQualityActionItem(this, lineStartAction));
}

View File

@@ -100,9 +100,9 @@ public class ActionWaitForFrame extends Action implements ActionStore {
}
@Override
public void translate(boolean insideDoInitAction, boolean insideDefineFunction1, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) throws InterruptedException {
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) throws InterruptedException {
GraphTargetItem frameTi = new DirectValueActionItem(null, null, 0, new Long(frame), new ArrayList<>());
List<GraphTargetItem> body = ActionGraph.translateViaGraph(insideDoInitAction, insideDefineFunction1, regNames, variables, functions, skipped, SWF.DEFAULT_VERSION, staticOperation, path);
List<GraphTargetItem> body = ActionGraph.translateViaGraph(insideDoInitAction, regNames, variables, functions, skipped, SWF.DEFAULT_VERSION, staticOperation, path);
output.add(new IfFrameLoadedActionItem(frameTi, body, this, lineStartAction));
}

View File

@@ -54,7 +54,7 @@ public class ActionAdd extends Action {
}
@Override
public void translate(boolean insideDoInitAction, boolean insideDefineFunction1, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();
stack.push(new AddActionItem(this, lineStartAction, b, a, false));

View File

@@ -53,7 +53,7 @@ public class ActionAnd extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionAsciiToChar extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
stack.push(new AsciiToCharActionItem(this, lineStartAction, a));

View File

@@ -58,7 +58,7 @@ public class ActionCall extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
output.add(new CallActionItem(this, lineStartAction, stack.pop()));
}

View File

@@ -53,7 +53,7 @@ public class ActionCharToAscii extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
stack.push(new CharToAsciiActionItem(this, lineStartAction, a));

View File

@@ -64,7 +64,7 @@ public class ActionCloneSprite extends Action {
}
@Override
public void translate(boolean insideDoInitAction, boolean insideDefineFunction1, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem depth = stack.pop();
GraphTargetItem source = stack.pop();
GraphTargetItem target = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionDivide extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -52,7 +52,7 @@ public class ActionEndDrag extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
output.add(new StopDragActionItem(this, lineStartAction));
}

View File

@@ -53,7 +53,7 @@ public class ActionEquals extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -64,7 +64,7 @@ public class ActionGetProperty extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem index = stack.pop();
GraphTargetItem target = stack.pop();

View File

@@ -49,7 +49,7 @@ public class ActionGetTime extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
stack.push(new GetTimeActionItem(this, lineStartAction));
}

View File

@@ -124,7 +124,7 @@ public class ActionGetURL2 extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem targetString = stack.pop();
GraphTargetItem urlString = stack.pop();

View File

@@ -64,7 +64,7 @@ public class ActionGetVariable extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem name = stack.pop();
String nameStr;

View File

@@ -143,7 +143,7 @@ public class ActionGotoFrame2 extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem frame = stack.pop();
output.add(new GotoFrame2ActionItem(this, lineStartAction, frame, sceneBiasFlag, playFlag, sceneBias));

View File

@@ -53,7 +53,7 @@ public class ActionLess extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionMBAsciiToChar extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
stack.push(new MBAsciiToCharActionItem(this, lineStartAction, a));

View File

@@ -53,7 +53,7 @@ public class ActionMBCharToAscii extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
stack.push(new MBCharToAsciiActionItem(this, lineStartAction, a));

View File

@@ -53,7 +53,7 @@ public class ActionMBStringExtract extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem count = stack.pop();
GraphTargetItem index = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionMBStringLength extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
stack.push(new MBStringLengthActionItem(this, lineStartAction, a));

View File

@@ -53,7 +53,7 @@ public class ActionMultiply extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionNot extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
stack.push(a.invert(this));

View File

@@ -53,7 +53,7 @@ public class ActionOr extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -52,7 +52,7 @@ public class ActionPop extends Action {
return "Pop";
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem val = stack.pop();
output.add(val);

View File

@@ -389,7 +389,7 @@ public class ActionPush extends Action {
}
@Override
public void translate(boolean insideDoInitAction, boolean insideDefineFunction1, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
int pos = 0;
for (Object o : values) {
if (o instanceof ConstantIndex) {

View File

@@ -53,7 +53,7 @@ public class ActionRandomNumber extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem maximum = stack.pop();
stack.push(new RandomNumberActionItem(this, lineStartAction, maximum));

View File

@@ -55,7 +55,7 @@ public class ActionRemoveSprite extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem target = stack.pop();
output.add(new RemoveSpriteActionItem(this, lineStartAction, target));

View File

@@ -70,7 +70,7 @@ public class ActionSetProperty extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem value = stack.pop().getThroughDuplicate();
GraphTargetItem index = stack.pop().getThroughDuplicate();

View File

@@ -54,7 +54,7 @@ public class ActionSetTarget2 extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem target = stack.pop();
output.add(new SetTarget2ActionItem(this, lineStartAction, target));

View File

@@ -68,7 +68,7 @@ public class ActionSetVariable extends Action implements StoreTypeAction {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem value = stack.pop().getThroughDuplicate();
GraphTargetItem name = stack.pop();

View File

@@ -54,7 +54,7 @@ public class ActionStartDrag extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem target = stack.pop();
GraphTargetItem lockCenter = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionStringAdd extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionStringEquals extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionStringExtract extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem count = stack.pop();
GraphTargetItem index = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionStringLength extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
stack.push(new StringLengthActionItem(this, lineStartAction, a));

View File

@@ -53,7 +53,7 @@ public class ActionStringLess extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionSubtract extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionToInteger extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
stack.push(new ToIntegerActionItem(this, lineStartAction, a));

View File

@@ -53,7 +53,7 @@ public class ActionTrace extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem value = stack.pop();
output.add(new TraceActionItem(this, lineStartAction, value));

View File

@@ -146,9 +146,9 @@ public class ActionWaitForFrame2 extends Action implements ActionStore {
}
@Override
public void translate(boolean insideDoInitAction, boolean insideDefineFunction1, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) throws InterruptedException {
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) throws InterruptedException {
GraphTargetItem frame = stack.pop();
List<GraphTargetItem> body = ActionGraph.translateViaGraph(insideDoInitAction, insideDefineFunction1, regNames, variables, functions, skipped, SWF.DEFAULT_VERSION, staticOperation, path);
List<GraphTargetItem> body = ActionGraph.translateViaGraph(insideDoInitAction, regNames, variables, functions, skipped, SWF.DEFAULT_VERSION, staticOperation, path);
output.add(new IfFrameLoadedActionItem(frame, body, this, lineStartAction));
}

View File

@@ -53,7 +53,7 @@ public class ActionAdd2 extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionBitAnd extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionBitLShift extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionBitOr extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionBitRShift extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionBitURShift extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionBitXor extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -66,7 +66,7 @@ public class ActionCallFunction extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem functionName = stack.pop();
long numArgs = popLong(stack);

View File

@@ -75,7 +75,7 @@ public class ActionCallMethod extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem methodName = stack.pop();
GraphTargetItem scriptObject = stack.pop();

View File

@@ -117,6 +117,6 @@ public class ActionConstantPool extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
}

View File

@@ -53,7 +53,7 @@ public class ActionDecrement extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
stack.push(new DecrementActionItem(this, lineStartAction, a));

View File

@@ -159,7 +159,7 @@ public class ActionDefineFunction extends Action implements GraphSourceItemConta
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
}

View File

@@ -57,7 +57,7 @@ public class ActionDefineLocal extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem value = stack.pop();
GraphTargetItem name = stack.pop();

View File

@@ -45,7 +45,7 @@ public class ActionDefineLocal2 extends Action {
return "DefineLocal2";
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem name = stack.pop();
output.add(new DefineLocalActionItem(this, lineStartAction, name, null));

View File

@@ -54,7 +54,7 @@ public class ActionDelete extends Action {
return false;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem propertyName = stack.pop();
GraphTargetItem object = stack.pop();

View File

@@ -60,7 +60,7 @@ public class ActionDelete2 extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem propertyName = stack.pop();

View File

@@ -65,7 +65,7 @@ public class ActionEnumerate extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem object = stack.pop();
//stack.push(new DirectValueActionItem(null, 0, new Null(), new ArrayList<String>()));

View File

@@ -53,7 +53,7 @@ public class ActionEquals2 extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -62,7 +62,7 @@ public class ActionGetMember extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem memberName = stack.pop();
GraphTargetItem object = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionIncrement extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
stack.push(new IncrementActionItem(this, lineStartAction, a));

View File

@@ -60,7 +60,7 @@ public class ActionInitArray extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
long numArgs = popLong(stack);
List<GraphTargetItem> args = new ArrayList<>();

View File

@@ -67,7 +67,7 @@ public class ActionInitObject extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
long numArgs = popLong(stack);
List<GraphTargetItem> values = new ArrayList<>();

View File

@@ -53,7 +53,7 @@ public class ActionLess2 extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -53,7 +53,7 @@ public class ActionModulo extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -71,7 +71,7 @@ public class ActionNewMethod extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem methodName = stack.pop();
GraphTargetItem scriptObject = stack.pop();

View File

@@ -71,7 +71,7 @@ public class ActionNewObject extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem objectName = stack.pop();
long numArgs = popLong(stack);

View File

@@ -54,7 +54,7 @@ public class ActionPushDuplicate extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem value = stack.peek();
stack.push(new DuplicateItem(this, lineStartAction, value));

View File

@@ -55,7 +55,7 @@ public class ActionReturn extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem value = stack.pop();
output.add(new ReturnActionItem(this, lineStartAction, value));

View File

@@ -69,7 +69,7 @@ public class ActionSetMember extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem value = stack.pop().getThroughDuplicate();
GraphTargetItem memberName = stack.pop();

View File

@@ -56,7 +56,7 @@ public class ActionStackSwap extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

View File

@@ -97,7 +97,7 @@ public class ActionStoreRegister extends Action implements StoreTypeAction {
return "StoreRegister " + registerNumber;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem value = stack.pop();
RegisterNumber rn = new RegisterNumber(registerNumber);

View File

@@ -62,7 +62,7 @@ public class ActionTargetPath extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem object = stack.pop();
stack.push(new TargetPathActionItem(this, lineStartAction, object));

View File

@@ -53,7 +53,7 @@ public class ActionToNumber extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem object = stack.pop();
stack.push(new ToNumberActionItem(this, lineStartAction, object));

View File

@@ -53,7 +53,7 @@ public class ActionToString extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem object = stack.pop();
stack.push(new ToStringActionItem(this, lineStartAction, object));

View File

@@ -53,7 +53,7 @@ public class ActionTypeOf extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem object = stack.pop();
stack.push(new TypeOfActionItem(this, lineStartAction, object));

View File

@@ -45,7 +45,7 @@ public class ActionEnumerate2 extends Action {
return "Enumerate2";
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem object = stack.pop();
output.add(new EnumerateActionItem(this, lineStartAction, object));

View File

@@ -53,7 +53,7 @@ public class ActionGreater extends Action {
return true;
}
@Override
@Override
public void translate(boolean insideDoInitAction, GraphSourceItem lineStartAction, TranslateStack stack, List<GraphTargetItem> output, HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions, int staticOperation, String path) {
GraphTargetItem a = stack.pop();
GraphTargetItem b = stack.pop();

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