mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-27 21:00:50 +00:00
format code: blank lines
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -75,20 +75,35 @@ import java.util.logging.Logger;
|
||||
public class ABC {
|
||||
|
||||
public int major_version = 46;
|
||||
|
||||
public int minor_version = 16;
|
||||
|
||||
public AVM2ConstantPool constants = new AVM2ConstantPool();
|
||||
|
||||
public List<MethodInfo> method_info = new ArrayList<>();
|
||||
|
||||
public List<MetadataInfo> metadata_info = new ArrayList<>();
|
||||
|
||||
public List<InstanceInfo> instance_info = new ArrayList<>();
|
||||
|
||||
public List<ClassInfo> class_info = new ArrayList<>();
|
||||
|
||||
public List<ScriptInfo> script_info = new ArrayList<>();
|
||||
|
||||
public List<MethodBody> bodies = new ArrayList<>();
|
||||
|
||||
private Map<Integer, Integer> bodyIdxFromMethodIdx;
|
||||
|
||||
private long[] stringOffsets;
|
||||
|
||||
public static final int MINORwithDECIMAL = 17;
|
||||
|
||||
protected Set<EventListener> listeners = new HashSet<>();
|
||||
|
||||
private static final Logger logger = Logger.getLogger(ABC.class.getName());
|
||||
|
||||
private AVM2Deobfuscation deobfuscation;
|
||||
|
||||
@Internal
|
||||
public ABCContainerTag parentTag;
|
||||
|
||||
@@ -109,7 +124,6 @@ public class ABC {
|
||||
public SWF getSwf() {
|
||||
return parentTag.getSwf();
|
||||
}
|
||||
|
||||
|
||||
public List<ABCContainerTag> getAbcTags() {
|
||||
return getSwf().getAbcList();
|
||||
@@ -258,7 +272,7 @@ public class ABC {
|
||||
Set<Integer> stringUsages = getStringUsages();
|
||||
Set<Integer> namespaceUsages = getNsStringUsages();
|
||||
int strIndex = constants.getMultiname(multinameIndex).name_index;
|
||||
if (stringUsages.contains(strIndex) || namespaceUsages.contains(strIndex)) { // name is used elsewhere as string literal
|
||||
if (stringUsages.contains(strIndex) || namespaceUsages.contains(strIndex)) { // name is used elsewhere as string literal
|
||||
strIndex = constants.getStringId(newname, true);
|
||||
constants.getMultiname(multinameIndex).name_index = strIndex;
|
||||
} else {
|
||||
@@ -361,7 +375,7 @@ public class ABC {
|
||||
}
|
||||
if (constant_int_pool_count > 1) {
|
||||
ais.newDumpLevel("integers", "integer[]");
|
||||
for (int i = 1; i < constant_int_pool_count; i++) { // index 0 not used. Values 1..n-1
|
||||
for (int i = 1; i < constant_int_pool_count; i++) { // index 0 not used. Values 1..n-1
|
||||
constants.addInt(ais.readS32("int"));
|
||||
}
|
||||
ais.endDumpLevel();
|
||||
@@ -560,9 +574,9 @@ public class ABC {
|
||||
|
||||
SWFDecompilerPlugin.fireMethodBodyParsed(mb, swf);
|
||||
}
|
||||
|
||||
|
||||
/*for(int i=0;i<script_count;i++){
|
||||
MethodBody bod=bodies.get(bodyIdxFromMethodIdx.get(script_info.get(i).init_index));
|
||||
MethodBody bod=bodies.get(bodyIdxFromMethodIdx.get(script_info.get(i).init_index));
|
||||
GraphTextWriter t=new HighlightedTextWriter(Configuration.getCodeFormatting(),false);
|
||||
try {
|
||||
bod.toString("script", ScriptExportMode.PCODE, this, null, constants, method_info, t, new ArrayList<String>());
|
||||
@@ -572,7 +586,6 @@ public class ABC {
|
||||
System.out.println(""+t.toString());
|
||||
}
|
||||
//System.exit(0);*/
|
||||
|
||||
SWFDecompilerPlugin.fireAbcParsed(this, swf);
|
||||
}
|
||||
|
||||
@@ -809,18 +822,18 @@ public class ABC {
|
||||
}
|
||||
namespaceMap = map;
|
||||
}
|
||||
|
||||
|
||||
return namespaceMap;
|
||||
}
|
||||
|
||||
|
||||
private AVM2Deobfuscation getDeobfuscation() {
|
||||
if (deobfuscation == null) {
|
||||
deobfuscation = new AVM2Deobfuscation(constants);
|
||||
}
|
||||
|
||||
|
||||
return deobfuscation;
|
||||
}
|
||||
|
||||
|
||||
private Map<Integer, Integer> getBodyIdxFromMethodIdx() {
|
||||
if (bodyIdxFromMethodIdx == null) {
|
||||
Map<Integer, Integer> map = new HashMap<>(bodies.size());
|
||||
@@ -828,10 +841,10 @@ public class ABC {
|
||||
MethodBody mb = bodies.get(i);
|
||||
map.put(mb.method_info, i);
|
||||
}
|
||||
|
||||
|
||||
bodyIdxFromMethodIdx = map;
|
||||
}
|
||||
|
||||
|
||||
return bodyIdxFromMethodIdx;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc;
|
||||
|
||||
import com.jpexs.decompiler.flash.EndOfStreamException;
|
||||
@@ -39,10 +40,15 @@ import java.util.List;
|
||||
public class ABCInputStream implements AutoCloseable {
|
||||
|
||||
private static final int CLASS_PROTECTED_NS = 8;
|
||||
|
||||
private static final int ATTR_METADATA = 4;
|
||||
|
||||
private final MemoryInputStream is;
|
||||
|
||||
private ByteArrayOutputStream bufferOs = null;
|
||||
|
||||
public static final boolean DEBUG_READ = false;
|
||||
|
||||
public DumpInfo dumpInfo;
|
||||
|
||||
public void startBuffer() {
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -35,22 +35,39 @@ import java.util.List;
|
||||
public class AVM2LocalData extends BaseLocalData {
|
||||
|
||||
public Boolean isStatic;
|
||||
|
||||
public Integer classIndex;
|
||||
|
||||
public HashMap<Integer, GraphTargetItem> localRegs;
|
||||
|
||||
public ScopeStack scopeStack;
|
||||
|
||||
public AVM2ConstantPool constants;
|
||||
|
||||
public List<MethodInfo> methodInfo;
|
||||
|
||||
public MethodBody methodBody;
|
||||
|
||||
public ABC abc;
|
||||
|
||||
public HashMap<Integer, String> localRegNames;
|
||||
|
||||
public List<String> fullyQualifiedNames;
|
||||
|
||||
public ArrayList<ABCException> parsedExceptions;
|
||||
|
||||
public ArrayList<Integer> finallyJumps;
|
||||
|
||||
public ArrayList<Integer> ignoredSwitches;
|
||||
|
||||
public Integer scriptIndex;
|
||||
|
||||
public HashMap<Integer, Integer> localRegAssignmentIps;
|
||||
|
||||
public Integer ip;
|
||||
|
||||
public HashMap<Integer, List<Integer>> refs;
|
||||
|
||||
public AVM2Code code;
|
||||
|
||||
public AVM2LocalData() {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc;
|
||||
|
||||
import com.jpexs.decompiler.flash.helpers.HighlightedText;
|
||||
@@ -27,10 +28,15 @@ import java.util.List;
|
||||
public class CachedDecompilation implements Serializable {
|
||||
|
||||
public String text;
|
||||
|
||||
public List<Highlighting> traitHilights;
|
||||
|
||||
public List<Highlighting> classHilights;
|
||||
|
||||
public List<Highlighting> methodHilights;
|
||||
|
||||
public List<Highlighting> instructionHilights;
|
||||
|
||||
public List<Highlighting> specialHilights;
|
||||
|
||||
public List<Highlighting> getInstructionHighlights() {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc;
|
||||
|
||||
import java.util.Objects;
|
||||
@@ -24,6 +25,7 @@ import java.util.Objects;
|
||||
public class ClassPath {
|
||||
|
||||
public String packageStr;
|
||||
|
||||
public String className;
|
||||
|
||||
public ClassPath(String packageStr, String className) {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -22,11 +23,17 @@ import java.io.OutputStream;
|
||||
public class CopyOutputStream extends OutputStream {
|
||||
|
||||
private final OutputStream os;
|
||||
|
||||
private final InputStream is;
|
||||
|
||||
private long pos = 0;
|
||||
|
||||
private final int TEMPSIZE = 5;
|
||||
|
||||
private final int[] temp = new int[TEMPSIZE];
|
||||
|
||||
private int tempPos = 0;
|
||||
|
||||
public int ignoreFirst = 0;
|
||||
|
||||
public CopyOutputStream(OutputStream os, InputStream is) {
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -48,8 +48,11 @@ import java.util.logging.Logger;
|
||||
public class ScriptPack extends AS3ClassTreeItem {
|
||||
|
||||
public final ABC abc;
|
||||
|
||||
public final int scriptIndex;
|
||||
|
||||
public final List<Integer> traitIndices;
|
||||
|
||||
private final ClassPath path;
|
||||
|
||||
@Override
|
||||
@@ -228,5 +231,4 @@ public class ScriptPack extends AS3ClassTreeItem {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2;
|
||||
|
||||
import com.jpexs.decompiler.flash.EndOfStreamException;
|
||||
@@ -253,34 +254,63 @@ import java.util.logging.Logger;
|
||||
public class AVM2Code implements Cloneable {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(AVM2Code.class.getName());
|
||||
|
||||
private static final boolean DEBUG_MODE = false;
|
||||
|
||||
public static int toSourceLimit = -1;
|
||||
|
||||
public List<AVM2Instruction> code = new ArrayList<>();
|
||||
|
||||
public static boolean DEBUG_REWRITE = false;
|
||||
|
||||
public static final int OPT_U30 = 0x100;
|
||||
|
||||
public static final int OPT_U8 = 0x200;
|
||||
|
||||
public static final int OPT_S24 = 0x300;
|
||||
|
||||
public static final int OPT_CASE_OFFSETS = 0x400;
|
||||
|
||||
public static final int OPT_BYTE = 0x500;
|
||||
|
||||
public static final int DAT_MULTINAME_INDEX = OPT_U30 + 0x01;
|
||||
|
||||
public static final int DAT_ARG_COUNT = OPT_U30 + 0x02;
|
||||
|
||||
public static final int DAT_METHOD_INDEX = OPT_U30 + 0x03;
|
||||
|
||||
public static final int DAT_STRING_INDEX = OPT_U30 + 0x04;
|
||||
|
||||
public static final int DAT_DEBUG_TYPE = OPT_U8 + 0x05;
|
||||
|
||||
public static final int DAT_REGISTER_INDEX = OPT_U8 + 0x06;
|
||||
|
||||
public static final int DAT_LINENUM = OPT_U30 + 0x07;
|
||||
|
||||
public static final int DAT_LOCAL_REG_INDEX = OPT_U30 + 0x08;
|
||||
|
||||
public static final int DAT_SLOT_INDEX = OPT_U30 + 0x09;
|
||||
|
||||
public static final int DAT_SLOT_SCOPE_INDEX = OPT_U30 + 0x0A;
|
||||
|
||||
public static final int DAT_OFFSET = OPT_S24 + 0x0B;
|
||||
|
||||
public static final int DAT_EXCEPTION_INDEX = OPT_U30 + 0x0C;
|
||||
|
||||
public static final int DAT_CLASS_INDEX = OPT_U30 + 0x0D;
|
||||
|
||||
public static final int DAT_INT_INDEX = OPT_U30 + 0x0E;
|
||||
|
||||
public static final int DAT_UINT_INDEX = OPT_U30 + 0x0F;
|
||||
|
||||
public static final int DAT_DOUBLE_INDEX = OPT_U30 + 0x10;
|
||||
|
||||
public static final int DAT_DECIMAL_INDEX = OPT_U30 + 0x11;
|
||||
|
||||
public static final int DAT_CASE_BASEOFFSET = OPT_S24 + 0x12;
|
||||
|
||||
public static final int DAT_DECIMAL_PARAMS = OPT_U30 + 0x13;
|
||||
|
||||
public static InstructionDefinition[] instructionSet = new InstructionDefinition[]{
|
||||
new AddIns(),
|
||||
new InstructionDefinition(0x9b, "add_d", new int[]{}) {
|
||||
@@ -725,8 +755,9 @@ public class AVM2Code implements Cloneable {
|
||||
}
|
||||
};
|
||||
// endoflist
|
||||
|
||||
|
||||
public static InstructionDefinition[] instructionSetByCode = buildInstructionSetByCode();
|
||||
|
||||
public boolean hideTemporaryRegisters = true;
|
||||
|
||||
private static InstructionDefinition[] buildInstructionSetByCode() {
|
||||
@@ -739,7 +770,9 @@ public class AVM2Code implements Cloneable {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static final String IDENTOPEN = "/*IDENTOPEN*/";
|
||||
|
||||
public static final String IDENTCLOSE = "/*IDENTCLOSE*/";
|
||||
|
||||
public AVM2Code() {
|
||||
@@ -1178,7 +1211,9 @@ public class AVM2Code implements Cloneable {
|
||||
}
|
||||
return writer;
|
||||
}
|
||||
|
||||
private boolean cacheActual = false;
|
||||
|
||||
private List<Long> posCache;
|
||||
|
||||
private void buildCache() {
|
||||
@@ -1213,8 +1248,11 @@ public class AVM2Code implements Cloneable {
|
||||
public void invalidateCache() {
|
||||
cacheActual = false;
|
||||
}
|
||||
|
||||
private List<Integer> unknownJumps;
|
||||
|
||||
private List<Integer> ignoredIns;
|
||||
|
||||
boolean isCatched = false;
|
||||
|
||||
/**
|
||||
@@ -1236,6 +1274,7 @@ public class AVM2Code implements Cloneable {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private int toSourceCount = 0;
|
||||
|
||||
public Map<Integer, String> getLocalRegNamesFromDebug(ABC abc) {
|
||||
@@ -1623,6 +1662,7 @@ public class AVM2Code implements Cloneable {
|
||||
private class Slot {
|
||||
|
||||
public GraphTargetItem scope;
|
||||
|
||||
public Multiname multiname;
|
||||
|
||||
public Slot(GraphTargetItem scope, Multiname multiname) {
|
||||
@@ -1719,7 +1759,7 @@ public class AVM2Code implements Cloneable {
|
||||
for(int reg:nowdeclaredRegs){
|
||||
declaredRegisters[reg] = false;
|
||||
}
|
||||
|
||||
|
||||
for(Slot s:nowdeclaredSlots){
|
||||
declaredSlots.remove(s);
|
||||
}*/
|
||||
@@ -1784,7 +1824,7 @@ public class AVM2Code implements Cloneable {
|
||||
return list;
|
||||
}
|
||||
}
|
||||
// Declarations
|
||||
// Declarations
|
||||
injectDeclarations(list, new boolean[regCount], new ArrayList<Slot>(), abc, body);
|
||||
|
||||
int lastPos = list.size() - 1;
|
||||
@@ -2322,6 +2362,7 @@ public class AVM2Code implements Cloneable {
|
||||
private static class ControlFlowTag {
|
||||
|
||||
public String name;
|
||||
|
||||
public int value;
|
||||
|
||||
public ControlFlowTag(String name, int value) {
|
||||
@@ -2551,8 +2592,11 @@ public class AVM2Code implements Cloneable {
|
||||
private static class Decision {
|
||||
|
||||
public boolean jumpUsed = false;
|
||||
|
||||
public boolean skipUsed = false;
|
||||
|
||||
public Set<Integer> casesUsed = new HashSet<>();
|
||||
|
||||
HashMap<Integer, GraphTargetItem> registers = new HashMap<>();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.types.Decimal;
|
||||
@@ -28,14 +29,22 @@ import java.util.logging.Logger;
|
||||
public class AVM2ConstantPool {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(AVM2ConstantPool.class.getName());
|
||||
|
||||
public List<Long> constant_int = new ArrayList<>();
|
||||
|
||||
public List<Long> constant_uint = new ArrayList<>();
|
||||
|
||||
public List<Double> constant_double = new ArrayList<>();
|
||||
/* Only for some minor versions */
|
||||
|
||||
public List<Decimal> constant_decimal = new ArrayList<>();
|
||||
|
||||
public List<String> constant_string = new ArrayList<>();
|
||||
|
||||
public List<Namespace> constant_namespace = new ArrayList<>();
|
||||
|
||||
public List<NamespaceSet> constant_namespace_set = new ArrayList<>();
|
||||
|
||||
public List<Multiname> constant_multiname = new ArrayList<>();
|
||||
|
||||
public synchronized int addInt(long value) {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.RenameType;
|
||||
@@ -30,6 +31,7 @@ import java.util.regex.Pattern;
|
||||
public class AVM2Deobfuscation {
|
||||
|
||||
private static final Random rnd = new Random();
|
||||
|
||||
private static final int DEFAULT_FOO_SIZE = 10;
|
||||
|
||||
public static final String[] reservedWords = {
|
||||
@@ -38,13 +40,19 @@ public class AVM2Deobfuscation {
|
||||
"interface", "internal", "is", "native", "new", "null", "override", "package", "private", "protected", "public",
|
||||
"return", "set", "super", "switch", "this", "throw", "true", "try", "typeof", "use", "var", /*"void",*/ "while",
|
||||
"with", "dynamic", "default", "final", "in", "static"};
|
||||
|
||||
public static final String VALID_FIRST_CHARACTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_";
|
||||
|
||||
public static final String VALID_NEXT_CHARACTERS = VALID_FIRST_CHARACTERS + "0123456789";
|
||||
|
||||
public static final String VALID_NS_CHARACTERS = ".:$";
|
||||
|
||||
public static final String FOO_CHARACTERS = "bcdfghjklmnpqrstvwz";
|
||||
|
||||
public static final String FOO_JOIN_CHARACTERS = "aeiouy";
|
||||
|
||||
private final AVM2ConstantPool constants;
|
||||
|
||||
private final Map<String, Integer> usageTypesCount = new HashMap<>();
|
||||
|
||||
public AVM2Deobfuscation(AVM2ConstantPool constants) {
|
||||
@@ -241,5 +249,4 @@ public class AVM2Deobfuscation {
|
||||
}
|
||||
return strIndex;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.ABC;
|
||||
@@ -27,11 +28,17 @@ import java.util.List;
|
||||
public class CodeStats {
|
||||
|
||||
public int maxstack = 0;
|
||||
|
||||
public int maxscope = 0;
|
||||
|
||||
public int maxlocal = 1;
|
||||
|
||||
public int initscope = 0;
|
||||
|
||||
public boolean has_set_dxns = false;
|
||||
|
||||
public boolean has_activation = false;
|
||||
|
||||
public InstructionStats[] instructionStats;
|
||||
|
||||
public GraphTextWriter toString(GraphTextWriter writer, ABC abc, List<String> fullyQualifiedNames) {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2;
|
||||
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
@@ -26,6 +27,7 @@ import java.util.List;
|
||||
public class ConvertOutput {
|
||||
|
||||
public TranslateStack stack;
|
||||
|
||||
public List<GraphTargetItem> output;
|
||||
|
||||
public ConvertOutput(TranslateStack stack, List<GraphTargetItem> output) {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -24,10 +25,15 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
public class InstructionStats {
|
||||
|
||||
public boolean seen = false;
|
||||
|
||||
public int stackpos = 0;
|
||||
|
||||
public int scopepos = 0;
|
||||
|
||||
public int stackpos_after = 0;
|
||||
|
||||
public int scopepos_after = 0;
|
||||
|
||||
public AVM2Instruction ins;
|
||||
|
||||
public InstructionStats(AVM2Instruction ins) {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2;
|
||||
|
||||
import java.util.HashMap;
|
||||
@@ -21,6 +22,8 @@ import java.util.Stack;
|
||||
public class LocalDataArea {
|
||||
|
||||
public Stack<Object> operandStack = new Stack<>();
|
||||
|
||||
public Stack<Object> scopeStack = new Stack<>();
|
||||
|
||||
public HashMap<Integer, Object> localRegisters = new HashMap<>();
|
||||
}
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2;
|
||||
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
@@ -22,7 +23,9 @@ import java.util.List;
|
||||
public class UnknownJumpException extends RuntimeException {
|
||||
|
||||
public TranslateStack stack;
|
||||
|
||||
public int ip;
|
||||
|
||||
public List<GraphTargetItem> output;
|
||||
|
||||
public UnknownJumpException(TranslateStack stack, int ip, List<GraphTargetItem> output) {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.graph;
|
||||
|
||||
import com.jpexs.decompiler.flash.BaseLocalData;
|
||||
@@ -80,7 +81,9 @@ import java.util.List;
|
||||
public class AVM2Graph extends Graph {
|
||||
|
||||
private final AVM2Code avm2code;
|
||||
|
||||
private final ABC abc;
|
||||
|
||||
private final MethodBody body;
|
||||
|
||||
public AVM2Code getCode() {
|
||||
|
||||
+16
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.graph;
|
||||
|
||||
import com.jpexs.decompiler.flash.BaseLocalData;
|
||||
@@ -38,16 +39,27 @@ import java.util.List;
|
||||
public class AVM2GraphSource extends GraphSource {
|
||||
|
||||
private final AVM2Code code;
|
||||
|
||||
boolean isStatic;
|
||||
|
||||
int classIndex;
|
||||
|
||||
int scriptIndex;
|
||||
|
||||
HashMap<Integer, GraphTargetItem> localRegs;
|
||||
|
||||
ScopeStack scopeStack;
|
||||
|
||||
ABC abc;
|
||||
|
||||
MethodBody body;
|
||||
|
||||
HashMap<Integer, String> localRegNames;
|
||||
|
||||
List<String> fullyQualifiedNames;
|
||||
|
||||
HashMap<Integer, Integer> localRegAssigmentIps;
|
||||
|
||||
HashMap<Integer, List<Integer>> refs;
|
||||
|
||||
public AVM2Code getCode() {
|
||||
|
||||
+13
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.instructions;
|
||||
|
||||
import com.jpexs.decompiler.flash.BaseLocalData;
|
||||
@@ -42,11 +43,17 @@ import java.util.List;
|
||||
public class AVM2Instruction implements Cloneable, GraphSourceItem {
|
||||
|
||||
public InstructionDefinition definition;
|
||||
|
||||
public int[] operands;
|
||||
|
||||
public long offset;
|
||||
|
||||
public String comment;
|
||||
|
||||
public boolean ignored = false;
|
||||
|
||||
public long mappedOffset = -1;
|
||||
|
||||
public int changeJumpTo = -1;
|
||||
|
||||
public AVM2Instruction(long offset, InstructionDefinition definition, int[] operands) {
|
||||
@@ -277,6 +284,7 @@ public class AVM2Instruction implements Cloneable, GraphSourceItem {
|
||||
s += getParams(constants, fullyQualifiedNames) + getComment();
|
||||
return s;
|
||||
}
|
||||
|
||||
public List<Object> replaceWith;
|
||||
|
||||
@Override
|
||||
@@ -354,6 +362,7 @@ public class AVM2Instruction implements Cloneable, GraphSourceItem {
|
||||
public void setFixBranch(int pos) {
|
||||
this.fixedBranch = pos;
|
||||
}
|
||||
|
||||
private int fixedBranch = -1;
|
||||
|
||||
public int getFixBranch() {
|
||||
|
||||
+7
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.instructions;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.ABC;
|
||||
@@ -44,7 +45,9 @@ public class InstructionDefinition implements Serializable {
|
||||
public static final long serialVersionUID = 1L;
|
||||
|
||||
public int[] operands;
|
||||
|
||||
public String instructionName = "";
|
||||
|
||||
public int instructionCode = 0;
|
||||
|
||||
public InstructionDefinition(int instructionCode, String instructionName, int[] operands) {
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.instructions.other;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.ABC;
|
||||
@@ -47,5 +48,4 @@ public class GetLexIns extends InstructionDefinition {
|
||||
public int getStackDelta(AVM2Instruction ins, ABC abc) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.instructions.other;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.ABC;
|
||||
@@ -48,5 +49,4 @@ public class HasNext2Ins extends InstructionDefinition {
|
||||
public int getStackDelta(AVM2Instruction ins, ABC abc) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.IdentifiersDeobfuscation;
|
||||
@@ -35,6 +36,7 @@ import java.util.List;
|
||||
public abstract class AVM2Item extends GraphTargetItem {
|
||||
|
||||
public AVM2Instruction instruction;
|
||||
|
||||
public boolean hidden = false;
|
||||
|
||||
public AVM2Item(GraphSourceItem instruction, int precedence) {
|
||||
@@ -147,5 +149,4 @@ public abstract class AVM2Item extends GraphTargetItem {
|
||||
AVM2SourceGenerator g = (AVM2SourceGenerator) generator;
|
||||
g.killRegister(localData, regNumber);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+6
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
|
||||
@@ -28,6 +29,7 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class AlchemyLoadAVM2Item extends AVM2Item {
|
||||
|
||||
private final String name;
|
||||
|
||||
private final GraphTargetItem ofs;
|
||||
|
||||
public AlchemyLoadAVM2Item(GraphSourceItem instruction, GraphTargetItem ofs, String name) {
|
||||
|
||||
+6
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
|
||||
@@ -28,6 +29,7 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class AlchemyStoreAVM2Item extends AVM2Item {
|
||||
|
||||
private final String name;
|
||||
|
||||
private final GraphTargetItem ofs;
|
||||
|
||||
public AlchemyStoreAVM2Item(GraphSourceItem instruction, GraphTargetItem value, GraphTargetItem ofs, String name) {
|
||||
|
||||
+6
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -31,6 +32,7 @@ import java.util.List;
|
||||
public class ApplyTypeAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public List<GraphTargetItem> params;
|
||||
|
||||
public ApplyTypeAVM2Item(AVM2Instruction instruction, GraphTargetItem object, List<GraphTargetItem> params) {
|
||||
@@ -83,5 +85,4 @@ public class ApplyTypeAVM2Item extends AVM2Item {
|
||||
ins(new ApplyTypeIns(), params.size())
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -25,7 +26,9 @@ import java.util.List;
|
||||
public class CallAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem receiver;
|
||||
|
||||
public GraphTargetItem function;
|
||||
|
||||
public List<GraphTargetItem> arguments;
|
||||
|
||||
public CallAVM2Item(AVM2Instruction instruction, GraphTargetItem receiver, GraphTargetItem function, List<GraphTargetItem> arguments) {
|
||||
|
||||
+7
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -25,7 +26,9 @@ import java.util.List;
|
||||
public class CallMethodAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem receiver;
|
||||
|
||||
public String methodName;
|
||||
|
||||
public List<GraphTargetItem> arguments;
|
||||
|
||||
public CallMethodAVM2Item(AVM2Instruction instruction, GraphTargetItem receiver, String methodName, List<GraphTargetItem> arguments) {
|
||||
|
||||
+8
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -31,8 +32,11 @@ import java.util.List;
|
||||
public class CallPropertyAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem receiver;
|
||||
|
||||
public GraphTargetItem propertyName;
|
||||
|
||||
public List<GraphTargetItem> arguments;
|
||||
|
||||
public boolean isVoid;
|
||||
|
||||
public CallPropertyAVM2Item(AVM2Instruction instruction, boolean isVoid, GraphTargetItem receiver, GraphTargetItem propertyName, List<GraphTargetItem> arguments) {
|
||||
|
||||
+7
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -25,7 +26,9 @@ import java.util.List;
|
||||
public class CallStaticAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem receiver;
|
||||
|
||||
public String methodName;
|
||||
|
||||
public List<GraphTargetItem> arguments;
|
||||
|
||||
public CallStaticAVM2Item(AVM2Instruction instruction, GraphTargetItem receiver, String methodName, List<GraphTargetItem> arguments) {
|
||||
|
||||
+8
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -25,8 +26,11 @@ import java.util.List;
|
||||
public class CallSuperAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem receiver;
|
||||
|
||||
public GraphTargetItem multiname;
|
||||
|
||||
public List<GraphTargetItem> arguments;
|
||||
|
||||
public boolean isVoid;
|
||||
|
||||
public CallSuperAVM2Item(AVM2Instruction instruction, boolean isVoid, GraphTargetItem receiver, GraphTargetItem multiname, List<GraphTargetItem> arguments) {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -136,5 +137,4 @@ public class CoerceAVM2Item extends AVM2Item {
|
||||
}
|
||||
return toSourceMerge(localData, generator, value, ins);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+6
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -24,6 +25,7 @@ import java.util.List;
|
||||
public class ConstructAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public List<GraphTargetItem> args;
|
||||
|
||||
public ConstructAVM2Item(AVM2Instruction instruction, GraphTargetItem object, List<GraphTargetItem> args) {
|
||||
|
||||
+7
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -25,7 +26,9 @@ import java.util.List;
|
||||
public class ConstructPropAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public GraphTargetItem propertyName;
|
||||
|
||||
public List<GraphTargetItem> args;
|
||||
|
||||
public ConstructPropAVM2Item(AVM2Instruction instruction, GraphTargetItem object, GraphTargetItem propertyName, List<GraphTargetItem> args) {
|
||||
|
||||
+6
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -30,6 +31,7 @@ import java.util.List;
|
||||
public class ConstructSuperAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public List<GraphTargetItem> args;
|
||||
|
||||
public ConstructSuperAVM2Item(AVM2Instruction instruction, GraphTargetItem object, List<GraphTargetItem> args) {
|
||||
@@ -71,5 +73,4 @@ public class ConstructSuperAVM2Item extends AVM2Item {
|
||||
new AVM2Instruction(0, new ConstructSuperIns(), new int[]{args.size()})
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+3
-4
@@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -61,5 +61,4 @@ public class DefaultXMLNamespace extends AVM2Item {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return toSourceMerge(localData, generator, ns, ins(new DXNSLateIns()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+3
-4
@@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -60,5 +60,4 @@ public class EscapeXElemAVM2Item extends AVM2Item {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return toSourceMerge(localData, generator, value, ins(new EscXElemIns()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+7
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.AVM2ConstantPool;
|
||||
@@ -28,7 +29,9 @@ import java.util.List;
|
||||
public class FullMultinameAVM2Item extends AVM2Item {
|
||||
|
||||
public int multinameIndex;
|
||||
|
||||
public GraphTargetItem name;
|
||||
|
||||
public GraphTargetItem namespace;
|
||||
|
||||
public FullMultinameAVM2Item(AVM2Instruction instruction, int multinameIndex, GraphTargetItem name) {
|
||||
|
||||
+8
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -30,8 +31,11 @@ import java.util.List;
|
||||
public class GetDescendantsAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public GraphTargetItem multiname;
|
||||
|
||||
public List<Integer> openedNamespaces;
|
||||
|
||||
public String nameStr;
|
||||
|
||||
//constructor for compiler
|
||||
@@ -69,5 +73,4 @@ public class GetDescendantsAVM2Item extends AVM2Item {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return ((AVM2SourceGenerator) generator).generate(localData, this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+6
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -31,6 +32,7 @@ import java.util.List;
|
||||
public class GetPropertyAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public GraphTargetItem propertyName;
|
||||
|
||||
public GetPropertyAVM2Item(AVM2Instruction instruction, GraphTargetItem object, GraphTargetItem propertyName) {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -25,6 +26,7 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class GetSlotAVM2Item extends AVM2Item {
|
||||
|
||||
public Multiname slotName;
|
||||
|
||||
public GraphTargetItem scope;
|
||||
|
||||
public GetSlotAVM2Item(AVM2Instruction instruction, GraphTargetItem scope, Multiname slotName) {
|
||||
|
||||
+6
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -24,6 +25,7 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class GetSuperAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public FullMultinameAVM2Item propertyName;
|
||||
|
||||
public GetSuperAVM2Item(AVM2Instruction instruction, GraphTargetItem object, FullMultinameAVM2Item propertyName) {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -28,6 +29,7 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class HasNextAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public GraphTargetItem collection;
|
||||
|
||||
public HasNextAVM2Item(AVM2Instruction instruction, GraphTargetItem object, GraphTargetItem collection) {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -30,6 +31,7 @@ import java.util.List;
|
||||
public class InAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public GraphTargetItem collection;
|
||||
|
||||
public InAVM2Item(AVM2Instruction instruction, GraphTargetItem object, GraphTargetItem collection) {
|
||||
@@ -59,5 +61,4 @@ public class InAVM2Item extends AVM2Item {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return toSourceMerge(localData, generator, object, collection, ins(new InIns()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+6
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -25,6 +26,7 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class InitPropertyAVM2Item extends AVM2Item implements SetTypeAVM2Item, AssignmentAVM2Item {
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public FullMultinameAVM2Item propertyName;
|
||||
//public GraphTargetItem value;
|
||||
|
||||
|
||||
+7
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -45,7 +46,9 @@ import java.util.List;
|
||||
public class InitVectorAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem subtype;
|
||||
|
||||
public List<GraphTargetItem> arguments;
|
||||
|
||||
List<Integer> openedNamespaces;
|
||||
|
||||
private int allNsSet(ABC abc) {
|
||||
@@ -118,5 +121,4 @@ public class InitVectorAVM2Item extends AVM2Item {
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+8
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -37,8 +38,11 @@ import java.util.Set;
|
||||
public class LocalRegAVM2Item extends AVM2Item {
|
||||
|
||||
public int regIndex;
|
||||
|
||||
public GraphTargetItem computedValue;
|
||||
|
||||
private final Object computedResult;
|
||||
|
||||
private boolean isCT = false;
|
||||
|
||||
public LocalRegAVM2Item(AVM2Instruction instruction, int regIndex, GraphTargetItem computedValue) {
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -64,5 +65,4 @@ public class NewArrayAVM2Item extends AVM2Item {
|
||||
new AVM2Instruction(0, new NewArrayIns(), new int[]{values.size()})
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+14
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.ABC;
|
||||
@@ -33,14 +34,23 @@ import java.util.List;
|
||||
public class NewFunctionAVM2Item extends AVM2Item {
|
||||
|
||||
public String functionName;
|
||||
|
||||
public String path;
|
||||
|
||||
public boolean isStatic;
|
||||
|
||||
public int scriptIndex;
|
||||
|
||||
public int classIndex;
|
||||
|
||||
public ABC abc;
|
||||
|
||||
public List<String> fullyQualifiedNames;
|
||||
|
||||
public AVM2ConstantPool constants;
|
||||
|
||||
public List<MethodInfo> methodInfo;
|
||||
|
||||
public int methodIndex;
|
||||
|
||||
public NewFunctionAVM2Item(AVM2Instruction instruction, String functionName, String path, boolean isStatic, int scriptIndex, int classIndex, ABC abc, List<String> fullyQualifiedNames, AVM2ConstantPool constants, List<MethodInfo> methodInfo, int methodIndex) {
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -81,5 +82,4 @@ public class NewObjectAVM2Item extends AVM2Item {
|
||||
new AVM2Instruction(0, new NewObjectIns(), new int[]{pairs.size()})
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+6
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -28,6 +29,7 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class NextNameAVM2Item extends AVM2Item {
|
||||
|
||||
GraphTargetItem index;
|
||||
|
||||
GraphTargetItem obj;
|
||||
|
||||
public NextNameAVM2Item(AVM2Instruction instruction, GraphTargetItem index, GraphTargetItem obj) {
|
||||
|
||||
+6
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -28,6 +29,7 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class NextValueAVM2Item extends AVM2Item {
|
||||
|
||||
GraphTargetItem index;
|
||||
|
||||
GraphTargetItem obj;
|
||||
|
||||
public NextValueAVM2Item(AVM2Instruction instruction, GraphTargetItem index, GraphTargetItem obj) {
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -73,5 +74,4 @@ public class PostIncrementAVM2Item extends AVM2Item implements AssignmentAVM2Ite
|
||||
}
|
||||
return new ArrayList<>(); //?
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+7
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -33,7 +34,9 @@ import java.util.List;
|
||||
public class SetPropertyAVM2Item extends AVM2Item implements SetTypeAVM2Item, AssignmentAVM2Item {
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public GraphTargetItem propertyName;
|
||||
|
||||
public GraphTargetItem value;
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -27,6 +28,7 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class SetSlotAVM2Item extends AVM2Item implements SetTypeAVM2Item, AssignmentAVM2Item {
|
||||
|
||||
public Multiname slotName;
|
||||
|
||||
//public GraphTargetItem value;
|
||||
public GraphTargetItem scope;
|
||||
|
||||
|
||||
+6
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -26,6 +27,7 @@ public class SetSuperAVM2Item extends AVM2Item {
|
||||
|
||||
//public GraphTargetItem value;
|
||||
public GraphTargetItem object;
|
||||
|
||||
public FullMultinameAVM2Item propertyName;
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -55,5 +56,4 @@ public class ThrowAVM2Item extends AVM2Item {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return ((AVM2SourceGenerator) generator).generate(localData, this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -32,7 +33,9 @@ import java.util.List;
|
||||
public class WithAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem scope;
|
||||
|
||||
public List<GraphTargetItem> items;
|
||||
|
||||
public List<AssignableAVM2Item> subvariables = new ArrayList<>();
|
||||
|
||||
public WithAVM2Item(AVM2Instruction instruction, GraphTargetItem scope, List<GraphTargetItem> items) {
|
||||
@@ -79,5 +82,4 @@ public class WithAVM2Item extends AVM2Item {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return ((AVM2SourceGenerator) generator).generate(localData, this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -54,5 +55,4 @@ public class WithObjectAVM2Item extends AVM2Item {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return scope.toSource(localData, generator);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+6
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model.clauses;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.AVM2Item;
|
||||
@@ -34,6 +35,7 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class DeclarationAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem assignment;
|
||||
|
||||
public GraphTargetItem type;
|
||||
|
||||
public DeclarationAVM2Item(GraphTargetItem assignment, GraphTargetItem type) {
|
||||
|
||||
+6
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model.clauses;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -29,6 +30,7 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class FilterAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem expression;
|
||||
|
||||
public GraphTargetItem collection;
|
||||
|
||||
public FilterAVM2Item(AVM2Instruction instruction, GraphTargetItem collection, GraphTargetItem expression) {
|
||||
|
||||
+7
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model.clauses;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -39,7 +40,9 @@ import java.util.List;
|
||||
public class ForEachInAVM2Item extends LoopItem implements Block {
|
||||
|
||||
public InAVM2Item expression;
|
||||
|
||||
public List<GraphTargetItem> commands;
|
||||
|
||||
private boolean labelUsed;
|
||||
|
||||
@Override
|
||||
@@ -133,5 +136,4 @@ public class ForEachInAVM2Item extends LoopItem implements Block {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return ((AVM2SourceGenerator) generator).generate(localData, this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+7
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model.clauses;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -39,7 +40,9 @@ import java.util.List;
|
||||
public class ForInAVM2Item extends LoopItem implements Block {
|
||||
|
||||
public InAVM2Item expression;
|
||||
|
||||
public List<GraphTargetItem> commands;
|
||||
|
||||
private boolean labelUsed;
|
||||
|
||||
@Override
|
||||
|
||||
+10
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model.clauses;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -38,10 +39,15 @@ import java.util.List;
|
||||
public class TryAVM2Item extends AVM2Item implements Block {
|
||||
|
||||
public List<GraphTargetItem> tryCommands;
|
||||
|
||||
public List<ABCException> catchExceptions;
|
||||
|
||||
public List<NameAVM2Item> catchExceptions2;
|
||||
|
||||
public List<List<GraphTargetItem>> catchCommands;
|
||||
|
||||
public List<GraphTargetItem> finallyCommands;
|
||||
|
||||
public List<List<AssignableAVM2Item>> catchVariables = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
@@ -164,5 +170,4 @@ public class TryAVM2Item extends AVM2Item implements Block {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return ((AVM2SourceGenerator) generator).generate(localData, this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model.operations;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -87,5 +88,4 @@ public class AddAVM2Item extends BinaryOpItem {
|
||||
public GraphTargetItem returnType() {
|
||||
return new UnboundedTypeItem();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+7
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model.operations;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -36,6 +37,7 @@ import java.util.List;
|
||||
public class DeletePropertyAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public GraphTargetItem propertyName;
|
||||
|
||||
private int line;
|
||||
@@ -80,7 +82,7 @@ public class DeletePropertyAVM2Item extends AVM2Item {
|
||||
return n.toSource(localData, generator, true, false, new ArrayList<GraphTargetItem>(), true, false);
|
||||
}
|
||||
|
||||
throw new CompilationException("Not a property", line); //TODO: handle line better way
|
||||
throw new CompilationException("Not a property", line); //TODO: handle line better way
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model.operations;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -49,5 +50,4 @@ public class LShiftAVM2Item extends BinaryOpItem {
|
||||
public GraphTargetItem returnType() {
|
||||
return new UnboundedTypeItem();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.model.operations;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -58,5 +59,4 @@ public class PreDecrementAVM2Item extends UnaryOpItem implements AssignmentAVM2I
|
||||
public GraphTargetItem returnType() {
|
||||
return value.returnType();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+8
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.pcode;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.AVM2Code;
|
||||
@@ -46,7 +47,9 @@ public class ASM3Parser {
|
||||
private static class OffsetItem {
|
||||
|
||||
public String label = "";
|
||||
|
||||
public long insPosition;
|
||||
|
||||
public int insOperandIndex;
|
||||
|
||||
public OffsetItem(String label, long insOffset, int insOperandIndex) {
|
||||
@@ -66,6 +69,7 @@ public class ASM3Parser {
|
||||
private static class LabelItem {
|
||||
|
||||
public String label = "";
|
||||
|
||||
public int offset;
|
||||
|
||||
public LabelItem(String label, int offset) {
|
||||
|
||||
+9
-4
@@ -2,17 +2,17 @@
|
||||
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -43,7 +43,9 @@ public final class Flasm3Lexer {
|
||||
* lexical states
|
||||
*/
|
||||
public static final int YYINITIAL = 0;
|
||||
|
||||
public static final int STRING = 2;
|
||||
|
||||
public static final int PARAMETERS = 4;
|
||||
|
||||
/**
|
||||
@@ -2494,7 +2496,9 @@ public final class Flasm3Lexer {
|
||||
|
||||
/* error codes */
|
||||
private static final int ZZ_UNKNOWN_ERROR = 0;
|
||||
|
||||
private static final int ZZ_NO_MATCH = 1;
|
||||
|
||||
private static final int ZZ_PUSHBACK_2BIG = 2;
|
||||
|
||||
/* error messages for the codes above */
|
||||
@@ -2642,7 +2646,9 @@ public final class Flasm3Lexer {
|
||||
|
||||
/* user code: */
|
||||
StringBuffer string = new StringBuffer();
|
||||
|
||||
boolean isMultiname = false;
|
||||
|
||||
long multinameId = 0;
|
||||
|
||||
/**
|
||||
@@ -3607,5 +3613,4 @@ public final class Flasm3Lexer {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+91
-4
@@ -1,108 +1,195 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.pcode;
|
||||
|
||||
public class ParsedSymbol {
|
||||
|
||||
public int type;
|
||||
|
||||
public Object value;
|
||||
|
||||
public static final int TYPE_STRING = 1;
|
||||
|
||||
public static final int TYPE_MULTINAME = 2;
|
||||
|
||||
public static final int TYPE_INSTRUCTION_NAME = 3;
|
||||
|
||||
public static final int TYPE_INTEGER = 4;
|
||||
|
||||
public static final int TYPE_FLOAT = 5;
|
||||
|
||||
public static final int TYPE_IDENTIFIER = 6;
|
||||
|
||||
public static final int TYPE_EOF = 7;
|
||||
|
||||
public static final int TYPE_LABEL = 8;
|
||||
|
||||
public static final int TYPE_COMMENT = 9;
|
||||
|
||||
public static final int TYPE_EXCEPTION_START = 10;
|
||||
|
||||
public static final int TYPE_EXCEPTION_END = 11;
|
||||
|
||||
public static final int TYPE_EXCEPTION_TARGET = 12;
|
||||
|
||||
public static final int TYPE_KEYWORD_QNAME = 13;
|
||||
|
||||
public static final int TYPE_KEYWORD_QNAMEA = 14;
|
||||
|
||||
public static final int TYPE_KEYWORD_RTQNAME = 15;
|
||||
|
||||
public static final int TYPE_KEYWORD_RTQNAMEA = 16;
|
||||
|
||||
public static final int TYPE_KEYWORD_RTQNAMEL = 17;
|
||||
|
||||
public static final int TYPE_KEYWORD_RTQNAMELA = 18;
|
||||
|
||||
public static final int TYPE_KEYWORD_MULTINAME = 19;
|
||||
|
||||
public static final int TYPE_KEYWORD_MULTINAMEA = 20;
|
||||
|
||||
public static final int TYPE_KEYWORD_MULTINAMEL = 21;
|
||||
|
||||
public static final int TYPE_KEYWORD_MULTINAMELA = 22;
|
||||
|
||||
public static final int TYPE_KEYWORD_TYPENAME = 23;
|
||||
|
||||
public static final int TYPE_PARENT_OPEN = 24;
|
||||
|
||||
public static final int TYPE_PARENT_CLOSE = 25;
|
||||
|
||||
public static final int TYPE_COMMA = 26;
|
||||
|
||||
public static final int TYPE_KEYWORD_NULL = 27;
|
||||
|
||||
public static final int TYPE_BRACKET_OPEN = 28;
|
||||
|
||||
public static final int TYPE_BRACKET_CLOSE = 29;
|
||||
|
||||
public static final int TYPE_LOWERTHAN = 30;
|
||||
|
||||
public static final int TYPE_GREATERTHAN = 31;
|
||||
|
||||
public static final int TYPE_KEYWORD_NAMESPACE = 32;
|
||||
|
||||
public static final int TYPE_KEYWORD_PRIVATENAMESPACE = 33;
|
||||
|
||||
public static final int TYPE_KEYWORD_PACKAGENAMESPACE = 34;
|
||||
|
||||
public static final int TYPE_KEYWORD_PACKAGEINTERNALNS = 35;
|
||||
|
||||
public static final int TYPE_KEYWORD_PROTECTEDNAMESPACE = 36;
|
||||
|
||||
public static final int TYPE_KEYWORD_EXPLICITNAMESPACE = 37;
|
||||
|
||||
public static final int TYPE_KEYWORD_STATICPROTECTEDNS = 38;
|
||||
|
||||
public static final int TYPE_KEYWORD_TRY = 39;
|
||||
|
||||
public static final int TYPE_KEYWORD_FROM = 40;
|
||||
|
||||
public static final int TYPE_KEYWORD_TO = 41;
|
||||
|
||||
public static final int TYPE_KEYWORD_TARGET = 42;
|
||||
|
||||
public static final int TYPE_KEYWORD_TYPE = 43;
|
||||
|
||||
public static final int TYPE_KEYWORD_NAME = 44;
|
||||
|
||||
public static final int TYPE_KEYWORD_FLAG = 45;
|
||||
|
||||
public static final int TYPE_KEYWORD_EXPLICIT = 46;
|
||||
|
||||
public static final int TYPE_KEYWORD_HAS_OPTIONAL = 47;
|
||||
|
||||
public static final int TYPE_KEYWORD_HAS_PARAM_NAMES = 48;
|
||||
|
||||
public static final int TYPE_KEYWORD_IGNORE_REST = 49;
|
||||
|
||||
public static final int TYPE_KEYWORD_NEED_ACTIVATION = 50;
|
||||
|
||||
public static final int TYPE_KEYWORD_NEED_ARGUMENTS = 51;
|
||||
|
||||
public static final int TYPE_KEYWORD_NEED_REST = 52;
|
||||
|
||||
public static final int TYPE_KEYWORD_SET_DXNS = 53;
|
||||
|
||||
public static final int TYPE_KEYWORD_PARAM = 54;
|
||||
|
||||
public static final int TYPE_KEYWORD_PARAMNAME = 55;
|
||||
|
||||
public static final int TYPE_KEYWORD_OPTIONAL = 56;
|
||||
|
||||
public static final int TYPE_KEYWORD_RETURNS = 57;
|
||||
|
||||
public static final int TYPE_KEYWORD_BODY = 58;
|
||||
|
||||
public static final int TYPE_KEYWORD_MAXSTACK = 59;
|
||||
|
||||
public static final int TYPE_KEYWORD_LOCALCOUNT = 60;
|
||||
|
||||
public static final int TYPE_KEYWORD_INITSCOPEDEPTH = 61;
|
||||
|
||||
public static final int TYPE_KEYWORD_MAXSCOPEDEPTH = 62;
|
||||
|
||||
public static final int TYPE_KEYWORD_CODE = 63;
|
||||
|
||||
public static final int TYPE_KEYWORD_INTEGER = 64;
|
||||
|
||||
public static final int TYPE_KEYWORD_UINTEGER = 65;
|
||||
|
||||
public static final int TYPE_KEYWORD_DOUBLE = 66;
|
||||
|
||||
public static final int TYPE_KEYWORD_DECIMAL = 67;
|
||||
|
||||
public static final int TYPE_KEYWORD_UTF8 = 68;
|
||||
|
||||
public static final int TYPE_KEYWORD_TRUE = 69;
|
||||
|
||||
public static final int TYPE_KEYWORD_FALSE = 70;
|
||||
|
||||
public static final int TYPE_KEYWORD_UNDEFINED = 71;
|
||||
|
||||
public static final int TYPE_KEYWORD_TRAIT = 72;
|
||||
|
||||
public static final int TYPE_KEYWORD_SLOT = 73;
|
||||
|
||||
public static final int TYPE_KEYWORD_CONST = 74;
|
||||
|
||||
public static final int TYPE_KEYWORD_METHOD = 75;
|
||||
|
||||
public static final int TYPE_KEYWORD_GETTER = 76;
|
||||
|
||||
public static final int TYPE_KEYWORD_SETTER = 77;
|
||||
|
||||
public static final int TYPE_KEYWORD_CLASS = 78;
|
||||
|
||||
public static final int TYPE_KEYWORD_FUNCTION = 79;
|
||||
|
||||
public static final int TYPE_KEYWORD_DISPID = 80;
|
||||
|
||||
public static final int TYPE_KEYWORD_SLOTID = 81;
|
||||
|
||||
public static final int TYPE_KEYWORD_VALUE = 82;
|
||||
|
||||
public static final int TYPE_KEYWORD_FINAL = 83;
|
||||
|
||||
public static final int TYPE_KEYWORD_METADATA = 84;
|
||||
|
||||
public static final int TYPE_KEYWORD_OVERRIDE = 85;
|
||||
|
||||
public ParsedSymbol(int type, Object value) {
|
||||
|
||||
+16
-12
@@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -142,11 +142,15 @@ import java.util.logging.Logger;
|
||||
public class AVM2SourceGenerator implements SourceGenerator {
|
||||
|
||||
public final ABC abc;
|
||||
|
||||
public List<ABC> allABCs;
|
||||
|
||||
public static final int MARK_E_START = 0;
|
||||
|
||||
public static final int MARK_E_END = 1;
|
||||
|
||||
public static final int MARK_E_TARGET = 2;
|
||||
|
||||
public static final int MARK_E_FINALLYPART = 3;
|
||||
|
||||
private AVM2Instruction ins(InstructionDefinition def, int... operands) {
|
||||
@@ -249,7 +253,7 @@ public class AVM2SourceGenerator implements SourceGenerator {
|
||||
|
||||
private List<GraphSourceItem> generateIf(SourceGeneratorLocalData localData, GraphTargetItem expression, List<GraphTargetItem> onTrueCmds, List<GraphTargetItem> onFalseCmds, boolean ternar) throws CompilationException {
|
||||
List<GraphSourceItem> ret = new ArrayList<>();
|
||||
//ret.addAll(notCondition(localData, expression));
|
||||
//ret.addAll(notCondition(localData, expression));
|
||||
List<AVM2Instruction> onTrue = null;
|
||||
List<AVM2Instruction> onFalse = null;
|
||||
if (ternar) {
|
||||
@@ -594,6 +598,7 @@ public class AVM2SourceGenerator implements SourceGenerator {
|
||||
fixLoop(forBody, forBodyLen + forFinalCLen + forExprLen, forBodyLen, item.loop.id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
private long uniqLast = 0;
|
||||
|
||||
public String uniqId() {
|
||||
@@ -814,7 +819,7 @@ public class AVM2SourceGenerator implements SourceGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
//catchCmds.add(catchCmd);
|
||||
//catchCmds.add(catchCmd);
|
||||
preCatches.addAll(catchCmds.get(c));
|
||||
catches.addAll(0, preCatches);
|
||||
catches.add(0, new ExceptionMarkAVM2Instruction(currentExceptionIds.get(c), MARK_E_TARGET));
|
||||
@@ -1322,7 +1327,7 @@ public class AVM2SourceGenerator implements SourceGenerator {
|
||||
}
|
||||
if (!nameItem.subtypes.isEmpty()) { //It's vector => TypeName
|
||||
List<Integer> params = new ArrayList<>();
|
||||
for (GraphTargetItem p : nameItem.subtypes) {
|
||||
for (GraphTargetItem p : nameItem.subtypes) {
|
||||
params.add(typeName(localData, p));//abc.constants.getMultinameId(new Multiname(Multiname.QNAME, str(p), namespace(Namespace.KIND_PACKAGE, ppkg), 0, 0, new ArrayList<Integer>()), true));
|
||||
}
|
||||
int qname = abc.constants.getMultinameId(new Multiname(Multiname.QNAME, str(name), namespace(Namespace.KIND_PACKAGE, pkg), 0, 0, new ArrayList<Integer>()), true);
|
||||
@@ -1381,7 +1386,7 @@ public class AVM2SourceGenerator implements SourceGenerator {
|
||||
|
||||
public int method(boolean subMethod, boolean isInterface, List<MethodBody> callStack, String pkg, boolean needsActivation, List<AssignableAVM2Item> subvariables, int initScope, boolean hasRest, int line, String className, String superType, boolean constructor, SourceGeneratorLocalData localData, List<GraphTargetItem> paramTypes, List<String> paramNames, List<GraphTargetItem> paramValues, List<GraphTargetItem> body, GraphTargetItem retType) throws CompilationException {
|
||||
//Reference<Boolean> hasArgs = new Reference<>(Boolean.FALSE);
|
||||
//calcRegisters(localData,needsActivation,paramNames,subvariables,body, hasArgs);
|
||||
//calcRegisters(localData,needsActivation,paramNames,subvariables,body, hasArgs);
|
||||
SourceGeneratorLocalData newlocalData = new SourceGeneratorLocalData(new HashMap<String, Integer>(), 1, true, 0);
|
||||
newlocalData.currentClass = className;
|
||||
newlocalData.pkg = localData.pkg;
|
||||
@@ -1598,7 +1603,7 @@ public class AVM2SourceGenerator implements SourceGenerator {
|
||||
mi.setFlagNeed_Arguments();
|
||||
}
|
||||
//No param names like in official
|
||||
/*
|
||||
/*
|
||||
if (!paramNames.isEmpty()) {
|
||||
mi.setFlagHas_paramnames();
|
||||
}*/
|
||||
@@ -2326,8 +2331,8 @@ public class AVM2SourceGenerator implements SourceGenerator {
|
||||
parentNames(a, abcs, a.instance_info.get(i).super_index, indices, names, namespaces, outABCs);
|
||||
}
|
||||
/*parentNames(abc,allABCs,abc.constants.getMultinameId(
|
||||
new Multiname(superName.kind,
|
||||
abc.constants.getStringId(superName.getName(a.constants, new ArrayList<String>()),true),
|
||||
new Multiname(superName.kind,
|
||||
abc.constants.getStringId(superName.getName(a.constants, new ArrayList<String>()),true),
|
||||
abc.constants.getNamespaceId(new Namespace(superName.getNamespace(a.constants).kind, abc.constants.getStringId(superName.getNamespace(a.constants).getName(a.constants),true)),0,true), 0, 0, new ArrayList<Integer>()), true),indices,names,namespaces,outABCs);*/
|
||||
return;
|
||||
}
|
||||
@@ -2337,7 +2342,7 @@ public class AVM2SourceGenerator implements SourceGenerator {
|
||||
}
|
||||
|
||||
/* public void calcRegisters(Reference<Integer> activationReg, SourceGeneratorLocalData localData, boolean needsActivation, List<String> funParamNames,List<NameAVM2Item> funSubVariables,List<GraphTargetItem> funBody, Reference<Boolean> hasArguments) throws ParseException {
|
||||
|
||||
|
||||
}*/
|
||||
/*public int resolveType(String objType) {
|
||||
if (objType.equals("*")) {
|
||||
@@ -2461,5 +2466,4 @@ public class AVM2SourceGenerator implements SourceGenerator {
|
||||
ret.add(ins(new PopIns()));
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+15
-4
@@ -2,17 +2,17 @@
|
||||
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -45,15 +45,25 @@ public final class ActionScriptLexer {
|
||||
* lexical states
|
||||
*/
|
||||
public static final int YYINITIAL = 0;
|
||||
|
||||
public static final int STRING = 2;
|
||||
|
||||
public static final int CHARLITERAL = 4;
|
||||
|
||||
public static final int XMLOPENTAG = 6;
|
||||
|
||||
public static final int XMLOPENTAGATTRIB = 8;
|
||||
|
||||
public static final int XMLINSTROPENTAG = 10;
|
||||
|
||||
public static final int XMLINSTRATTRIB = 12;
|
||||
|
||||
public static final int XMLCDATA = 14;
|
||||
|
||||
public static final int XMLCOMMENT = 16;
|
||||
|
||||
public static final int XML = 18;
|
||||
|
||||
public static final int OIDENTIFIER = 20;
|
||||
|
||||
/**
|
||||
@@ -864,7 +874,9 @@ public final class ActionScriptLexer {
|
||||
|
||||
/* error codes */
|
||||
private static final int ZZ_UNKNOWN_ERROR = 0;
|
||||
|
||||
private static final int ZZ_NO_MATCH = 1;
|
||||
|
||||
private static final int ZZ_PUSHBACK_2BIG = 2;
|
||||
|
||||
/* error messages for the codes above */
|
||||
@@ -2334,5 +2346,4 @@ public final class ActionScriptLexer {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+12
-9
@@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -125,10 +125,13 @@ import java.util.logging.Logger;
|
||||
public class ActionScriptParser {
|
||||
|
||||
private long uniqLast = 0;
|
||||
|
||||
private final boolean debugMode = false;
|
||||
|
||||
private static final String AS3_NAMESPACE = "http://adobe.com/AS3/2006/builtin";
|
||||
|
||||
private final ABC abc;
|
||||
|
||||
private final List<ABC> otherABCs;
|
||||
|
||||
private static final List<ABC> playerABCs = new ArrayList<>();
|
||||
@@ -305,7 +308,7 @@ public class ActionScriptParser {
|
||||
boolean attrBracket = false;
|
||||
|
||||
while (s.isType(SymbolType.DOT)) {
|
||||
name += s.value.toString(); //. or ::
|
||||
name += s.value.toString(); //. or ::
|
||||
s = lex();
|
||||
if (s.type == SymbolType.ATTRIBUTE) {
|
||||
name += "@";
|
||||
@@ -932,7 +935,7 @@ public class ActionScriptParser {
|
||||
GraphTargetItem ret = null;
|
||||
switch (s.type) {
|
||||
/*case INT:
|
||||
expectedType(SymbolType.PARENT_OPEN);
|
||||
expectedType(SymbolType.PARENT_OPEN);
|
||||
ret = new ToIntegerAVM2Item(null, expression(thisType,pkg,needsActivation, importedClasses, openedNamespaces,openedNamespacesKinds,registerVars, inFunction, inMethod, true, variables));
|
||||
expectedType(SymbolType.PARENT_CLOSE);
|
||||
break;
|
||||
@@ -1092,7 +1095,7 @@ public class ActionScriptParser {
|
||||
addS(rets, sb);
|
||||
lexer.yybegin(ActionScriptLexer.XML);
|
||||
break;
|
||||
case XML_STARTVARTAG_BEGIN: //add
|
||||
case XML_STARTVARTAG_BEGIN: //add
|
||||
//openedTags.add("*");
|
||||
|
||||
//ret = add(ret, );
|
||||
@@ -1123,7 +1126,7 @@ public class ActionScriptParser {
|
||||
rets.addAll(st);
|
||||
closedVarTags.setVal(subclose.getVal() + subclose.getVal());
|
||||
break;
|
||||
/*case XML_STARTTAG_END:
|
||||
/*case XML_STARTTAG_END:
|
||||
sb.append(s.value.toString());
|
||||
ret = addstr(ret,sb);
|
||||
break;*/
|
||||
@@ -1631,7 +1634,7 @@ public class ActionScriptParser {
|
||||
System.out.println("/command");
|
||||
}
|
||||
lexer.removeListener(buf);
|
||||
if (ret == null) { //can be popped expression
|
||||
if (ret == null) { //can be popped expression
|
||||
buf.pushAllBack(lexer);
|
||||
ret = expression(thisType, pkg, needsActivation, importedClasses, openedNamespaces, registerVars, inFunction, inMethod, true, variables);
|
||||
}
|
||||
@@ -2196,6 +2199,7 @@ public class ActionScriptParser {
|
||||
}
|
||||
|
||||
private ActionScriptLexer lexer = null;
|
||||
|
||||
private List<String> constantPool;
|
||||
|
||||
private PackageAVM2Item parsePackage(List<Integer> openedNamespaces) throws IOException, AVM2ParseException, CompilationException {
|
||||
@@ -2352,5 +2356,4 @@ public class ActionScriptParser {
|
||||
}
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+10
-8
@@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -48,7 +48,9 @@ import java.util.List;
|
||||
public class CallAVM2Item extends AVM2Item {
|
||||
|
||||
public GraphTargetItem name;
|
||||
|
||||
public List<GraphTargetItem> arguments;
|
||||
|
||||
public int line;
|
||||
|
||||
public CallAVM2Item(int line, GraphTargetItem name, List<GraphTargetItem> arguments) {
|
||||
@@ -137,12 +139,12 @@ public class CallAVM2Item extends AVM2Item {
|
||||
if (obj == null) {
|
||||
obj = new AVM2Instruction(0, new FindPropertyStrictIns(), new int[]{propIndex});
|
||||
}
|
||||
|
||||
|
||||
boolean isSuper = (obj instanceof NameAVM2Item) && "super".equals(((NameAVM2Item) obj).getVariableName());
|
||||
|
||||
InstructionDefinition insDef = isSuper ?
|
||||
(needsReturn ? new CallSuperIns() : new CallSuperVoidIns()) :
|
||||
(needsReturn ? new CallPropertyIns() : new CallPropVoidIns());
|
||||
|
||||
InstructionDefinition insDef = isSuper
|
||||
? (needsReturn ? new CallSuperIns() : new CallSuperVoidIns())
|
||||
: (needsReturn ? new CallPropertyIns() : new CallPropVoidIns());
|
||||
return toSourceMerge(localData, generator, obj, arguments,
|
||||
ins(insDef, propIndex, arguments.size())
|
||||
);
|
||||
|
||||
+18
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.AVM2Item;
|
||||
@@ -28,18 +29,31 @@ import java.util.List;
|
||||
public class ClassAVM2Item extends AVM2Item implements Block {
|
||||
|
||||
public List<GraphTargetItem> traits;
|
||||
|
||||
public GraphTargetItem extendsOp;
|
||||
|
||||
public List<GraphTargetItem> implementsOp;
|
||||
|
||||
public String className;
|
||||
|
||||
public GraphTargetItem constructor;
|
||||
|
||||
public int namespace;
|
||||
|
||||
public int protectedNs;
|
||||
|
||||
public boolean isDynamic;
|
||||
|
||||
public boolean isFinal;
|
||||
|
||||
public List<Integer> openedNamespaces;
|
||||
|
||||
public List<GraphTargetItem> staticInit;
|
||||
|
||||
public boolean staticInitActivation;
|
||||
|
||||
public List<AssignableAVM2Item> sinitVariables;
|
||||
|
||||
public List<String> importedClasses;
|
||||
|
||||
public String pkg;
|
||||
@@ -97,5 +111,4 @@ public class ClassAVM2Item extends AVM2Item implements Block {
|
||||
public GraphTargetItem returnType() {
|
||||
return new UnboundedTypeItem(); //FIXME
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+11
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.AVM2Item;
|
||||
@@ -27,11 +28,17 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class ConstAVM2Item extends AVM2Item {
|
||||
|
||||
private final int namespace;
|
||||
|
||||
private final boolean isStatic;
|
||||
|
||||
public String var;
|
||||
|
||||
public GraphTargetItem type;
|
||||
|
||||
public String customNamespace;
|
||||
|
||||
public int line;
|
||||
|
||||
public String pkg;
|
||||
|
||||
public int getNamespace() {
|
||||
@@ -68,5 +75,4 @@ public class ConstAVM2Item extends AVM2Item {
|
||||
public boolean hasReturnValue() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -95,5 +96,4 @@ public class ConstructSomethingAVM2Item extends CallAVM2Item {
|
||||
}
|
||||
return toSourceMerge(localData, generator, resname, arguments, ins(new ConstructIns(), arguments.size()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.jumps.JumpIns;
|
||||
@@ -32,5 +33,4 @@ public class ContinueJumpIns extends JumpIns {
|
||||
public long getLoopId() {
|
||||
return loopId;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+6
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction;
|
||||
@@ -25,6 +26,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.InstructionDefinition;
|
||||
public class ExceptionMarkAVM2Instruction extends AVM2Instruction {
|
||||
|
||||
public int markType;
|
||||
|
||||
public int exceptionId;
|
||||
|
||||
public ExceptionMarkAVM2Instruction(int exceptionId, int markType) {
|
||||
@@ -38,5 +40,4 @@ public class ExceptionMarkAVM2Instruction extends AVM2Instruction {
|
||||
public byte[] getBytes() {
|
||||
return new byte[0];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+18
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -33,18 +34,31 @@ import java.util.List;
|
||||
public class FunctionAVM2Item extends AVM2Item {
|
||||
|
||||
public String calculatedFunctionName;
|
||||
|
||||
public String functionName;
|
||||
|
||||
public int namespace;
|
||||
|
||||
public List<String> paramNames;
|
||||
|
||||
public List<GraphTargetItem> body;
|
||||
|
||||
public List<AssignableAVM2Item> subvariables;
|
||||
|
||||
public List<GraphTargetItem> paramTypes;
|
||||
|
||||
public List<GraphTargetItem> paramValues;
|
||||
|
||||
public GraphTargetItem retType;
|
||||
|
||||
public int line;
|
||||
|
||||
public boolean hasRest;
|
||||
|
||||
public boolean needsActivation;
|
||||
|
||||
public boolean isInterface;
|
||||
|
||||
public String pkg;
|
||||
|
||||
public FunctionAVM2Item(String pkg, boolean isInterface, boolean needsActivation, int namespace, boolean hasRest, int line, String functionName, List<GraphTargetItem> paramTypes, List<String> paramNames, List<GraphTargetItem> paramValues, List<GraphTargetItem> body, List<AssignableAVM2Item> subvariables, GraphTargetItem retType) {
|
||||
@@ -83,5 +97,4 @@ public class FunctionAVM2Item extends AVM2Item {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return ((AVM2SourceGenerator) generator).generate(localData, this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
@@ -27,5 +28,4 @@ public class GetterAVM2Item extends MethodAVM2Item {
|
||||
public GetterAVM2Item(String pkg, boolean isInterface, String customNamespace, boolean needsActivation, boolean hasRest, int line, boolean override, boolean isFinal, boolean isStatic, int namespace, String methodName, List<GraphTargetItem> paramTypes, List<String> paramNames, List<GraphTargetItem> paramValues, List<GraphTargetItem> body, List<AssignableAVM2Item> subvariables, GraphTargetItem retType) {
|
||||
super(pkg, isInterface, customNamespace, needsActivation, hasRest, line, override, isFinal, isStatic, namespace, methodName, paramTypes, paramNames, paramValues, body, subvariables, retType);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+8
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -47,8 +48,11 @@ import java.util.List;
|
||||
public class IndexAVM2Item extends AssignableAVM2Item {
|
||||
|
||||
private final List<Integer> openedNamespaces;
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public GraphTargetItem index;
|
||||
|
||||
public boolean attr;
|
||||
|
||||
public IndexAVM2Item(boolean attr, GraphTargetItem object, GraphTargetItem index, GraphTargetItem storeValue, List<Integer> openedNamespaces) {
|
||||
@@ -150,5 +154,4 @@ public class IndexAVM2Item extends AssignableAVM2Item {
|
||||
public List<GraphSourceItem> toSourceIgnoreReturnValue(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return toSource(localData, generator, false, false, new ArrayList<GraphTargetItem>(), false, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+12
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.AVM2Item;
|
||||
@@ -29,12 +30,19 @@ import java.util.List;
|
||||
public class InterfaceAVM2Item extends AVM2Item {
|
||||
|
||||
public String name;
|
||||
|
||||
public List<GraphTargetItem> superInterfaces;
|
||||
|
||||
public List<GraphTargetItem> methods;
|
||||
|
||||
public int namespace;
|
||||
|
||||
public boolean isFinal;
|
||||
|
||||
public List<Integer> openedNamespaces;
|
||||
|
||||
public String pkg;
|
||||
|
||||
public List<String> importedClasses;
|
||||
|
||||
public InterfaceAVM2Item(List<String> importedClasses, String pkg, List<Integer> openedNamespaces, boolean isFinal, int namespace, String name, List<GraphTargetItem> superInterfaces, List<GraphTargetItem> traits) {
|
||||
|
||||
+9
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
|
||||
@@ -27,9 +28,13 @@ import java.util.List;
|
||||
public class MethodAVM2Item extends FunctionAVM2Item {
|
||||
|
||||
private final boolean isStatic;
|
||||
|
||||
private final boolean isFinal;
|
||||
|
||||
private final boolean override;
|
||||
|
||||
public String customNamespace;
|
||||
|
||||
public boolean isInterface;
|
||||
|
||||
public MethodAVM2Item(String pkg, boolean isInterface, String customNamespace, boolean needsActivation, boolean hasRest, int line, boolean override, boolean isFinal, boolean isStatic, int namespace, String methodName, List<GraphTargetItem> paramTypes, List<String> paramNames, List<GraphTargetItem> paramValues, List<GraphTargetItem> body, List<AssignableAVM2Item> subvariables, GraphTargetItem retType) {
|
||||
@@ -57,5 +62,4 @@ public class MethodAVM2Item extends FunctionAVM2Item {
|
||||
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
|
||||
return writer; //todo?
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+16
-7
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -61,14 +62,23 @@ public class NameAVM2Item extends AssignableAVM2Item {
|
||||
private String variableName;
|
||||
|
||||
private boolean definition;
|
||||
|
||||
private int nsKind = -1;
|
||||
|
||||
public List<Integer> openedNamespaces;
|
||||
|
||||
public int line;
|
||||
|
||||
public GraphTargetItem type;
|
||||
|
||||
private GraphTargetItem ns = null;
|
||||
|
||||
private int regNumber = -1;
|
||||
|
||||
public boolean unresolved = false;
|
||||
|
||||
private int slotNumber = -1;
|
||||
|
||||
private int slotScope = 0;
|
||||
|
||||
public GraphTargetItem redirect;
|
||||
@@ -310,8 +320,8 @@ public class NameAVM2Item extends AssignableAVM2Item {
|
||||
Reference<Integer> ret_temp = new Reference<>(-1);
|
||||
boolean isInteger = returnType().toString().equals("int");
|
||||
/*
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
if (!needsReturn) {
|
||||
if (slotNumber > -1) {
|
||||
@@ -340,5 +350,4 @@ public class NameAVM2Item extends AssignableAVM2Item {
|
||||
slotNumber > -1 ? ins(new SetSlotIns(), slotNumber) : null
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+10
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -51,10 +52,15 @@ import java.util.List;
|
||||
public class NamespacedAVM2Item extends AssignableAVM2Item {
|
||||
|
||||
public GraphTargetItem ns;
|
||||
|
||||
public String name;
|
||||
|
||||
public GraphTargetItem nameItem;
|
||||
|
||||
public GraphTargetItem obj;
|
||||
|
||||
public boolean attr;
|
||||
|
||||
public List<Integer> openedNamespaces;
|
||||
|
||||
public NamespacedAVM2Item(GraphTargetItem ns, String name, GraphTargetItem nameItem, GraphTargetItem obj, boolean attr, List<Integer> openedNamespaces, GraphTargetItem storeValue) {
|
||||
@@ -219,5 +225,4 @@ public class NamespacedAVM2Item extends AssignableAVM2Item {
|
||||
public List<GraphSourceItem> toSourceIgnoreReturnValue(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return toSource(localData, generator, false, false, new ArrayList<GraphTargetItem>(), false, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+8
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.AVM2Item;
|
||||
@@ -30,8 +31,11 @@ import java.util.List;
|
||||
public class PackageAVM2Item extends AVM2Item {
|
||||
|
||||
public List<GraphTargetItem> items;
|
||||
|
||||
public String packageName;
|
||||
|
||||
public List<String> importedClasses = new ArrayList<>();
|
||||
|
||||
public int publicNs = 0;
|
||||
|
||||
public PackageAVM2Item(int publicNs, List<String> importedClasses, String packageName, List<GraphTargetItem> items) {
|
||||
|
||||
+7
-4
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
/**
|
||||
@@ -22,7 +23,9 @@ package com.jpexs.decompiler.flash.abc.avm2.parser.script;
|
||||
public class ParsedSymbol {
|
||||
|
||||
public SymbolGroup group;
|
||||
|
||||
public Object value;
|
||||
|
||||
public SymbolType type;
|
||||
|
||||
public ParsedSymbol(SymbolGroup group, SymbolType type) {
|
||||
|
||||
+13
-7
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -60,11 +61,17 @@ import java.util.List;
|
||||
public class PropertyAVM2Item extends AssignableAVM2Item {
|
||||
|
||||
public String propertyName;
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public ABC abc;
|
||||
|
||||
public List<ABC> otherABCs;
|
||||
|
||||
private final List<Integer> openedNamespaces;
|
||||
|
||||
private final List<MethodBody> callStack;
|
||||
|
||||
public List<GraphTargetItem> scopeStack = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
@@ -148,7 +155,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item {
|
||||
nsname = name.substring(0,name.lastIndexOf("."));
|
||||
name = name.substring(name.lastIndexOf(".")+1);
|
||||
}
|
||||
|
||||
|
||||
List<ABC> abcs = new ArrayList<>();
|
||||
abcs.add(abc);
|
||||
abcs.addAll(otherABCs);
|
||||
@@ -394,7 +401,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item {
|
||||
for (int i = 0; i < openedNamespaces.size(); i++) {
|
||||
int nsindex = openedNamespaces.get(i);
|
||||
int nsKind = abc.constants.constant_namespace.get(openedNamespaces.get(i)).kind;
|
||||
String nsname = abc.constants.constant_namespace.get(openedNamespaces.get(i)).getName(abc.constants);
|
||||
String nsname = abc.constants.constant_namespace.get(openedNamespaces.get(i)).getName(abc.constants);
|
||||
int name_index = 0;
|
||||
for (int m = 1; m < abc.constants.constant_multiname.size(); m++) {
|
||||
Multiname mname = abc.constants.constant_multiname.get(m);
|
||||
@@ -680,5 +687,4 @@ public class PropertyAVM2Item extends AssignableAVM2Item {
|
||||
killTemp(localData, generator, Arrays.asList(ret_temp, obj_temp)));
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
/**
|
||||
@@ -40,5 +41,4 @@ public class Reference<T> {
|
||||
public String toString() {
|
||||
return val.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
@@ -27,5 +28,4 @@ public class SetterAVM2Item extends MethodAVM2Item {
|
||||
public SetterAVM2Item(String pkg, boolean isInterface, String customNamespace, boolean needsActivation, boolean hasRest, int line, boolean override, boolean isFinal, boolean isStatic, int namespace, String methodName, List<GraphTargetItem> paramTypes, List<String> paramNames, List<GraphTargetItem> paramValues, List<GraphTargetItem> body, List<AssignableAVM2Item> subvariables, GraphTargetItem retType) {
|
||||
super(pkg, isInterface, customNamespace, needsActivation, hasRest, line, override, isFinal, isStatic, namespace, methodName, paramTypes, paramNames, paramValues, body, subvariables, retType);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+11
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.AVM2Item;
|
||||
@@ -27,11 +28,17 @@ import com.jpexs.decompiler.graph.model.LocalData;
|
||||
public class SlotAVM2Item extends AVM2Item {
|
||||
|
||||
private final int namespace;
|
||||
|
||||
private final boolean isStatic;
|
||||
|
||||
public String var;
|
||||
|
||||
public GraphTargetItem type;
|
||||
|
||||
public String customNamespace;
|
||||
|
||||
public int line;
|
||||
|
||||
public String pkg;
|
||||
|
||||
public int getNamespace() {
|
||||
@@ -68,5 +75,4 @@ public class SlotAVM2Item extends AVM2Item {
|
||||
public boolean hasReturnValue() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+13
-5
@@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -51,15 +51,24 @@ public class UnresolvedAVM2Item extends AssignableAVM2Item {
|
||||
private String name;
|
||||
|
||||
private int nsKind = -1;
|
||||
|
||||
public List<Integer> openedNamespaces;
|
||||
|
||||
public int line;
|
||||
|
||||
public GraphTargetItem type;
|
||||
|
||||
//private GraphTargetItem ns = null;
|
||||
public GraphTargetItem resolved;
|
||||
|
||||
public GraphTargetItem resolvedRoot;
|
||||
|
||||
private final boolean mustBeType;
|
||||
|
||||
public List<String> importedClasses;
|
||||
|
||||
public List<GraphTargetItem> scopeStack = new ArrayList<>();
|
||||
|
||||
public List<GraphTargetItem> subtypes;
|
||||
|
||||
@Override
|
||||
@@ -382,7 +391,7 @@ public class UnresolvedAVM2Item extends AssignableAVM2Item {
|
||||
}
|
||||
}
|
||||
|
||||
//Search for types in opened namespaces
|
||||
//Search for types in opened namespaces
|
||||
for (int ni : openedNamespaces) {
|
||||
Namespace ons = abc.constants.getNamespace(ni);
|
||||
if (ons == null) {
|
||||
@@ -501,5 +510,4 @@ public class UnresolvedAVM2Item extends AssignableAVM2Item {
|
||||
}
|
||||
return resolvedRoot = ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -66,5 +67,4 @@ public class XMLAVM2Item extends AVM2Item {
|
||||
ins(new ConstructIns(), 1)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+6
-5
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.avm2.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -33,6 +34,7 @@ import java.util.List;
|
||||
public class XMLFilterAVM2Item extends AVM2Item {
|
||||
|
||||
public List<Integer> openedNamespaces;
|
||||
|
||||
public GraphTargetItem object;
|
||||
|
||||
public XMLFilterAVM2Item(GraphTargetItem object, GraphTargetItem value, List<Integer> openedNamespaces) {
|
||||
@@ -61,5 +63,4 @@ public class XMLFilterAVM2Item extends AVM2Item {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
return ((AVM2SourceGenerator) generator).generate(localData, this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+8
-4
@@ -2,17 +2,17 @@
|
||||
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -40,6 +40,7 @@ public final class MethodInfoLexer {
|
||||
* lexical states
|
||||
*/
|
||||
public static final int YYINITIAL = 0;
|
||||
|
||||
public static final int STRING = 2;
|
||||
|
||||
/**
|
||||
@@ -482,7 +483,9 @@ public final class MethodInfoLexer {
|
||||
|
||||
/* error codes */
|
||||
private static final int ZZ_UNKNOWN_ERROR = 0;
|
||||
|
||||
private static final int ZZ_NO_MATCH = 1;
|
||||
|
||||
private static final int ZZ_PUSHBACK_2BIG = 2;
|
||||
|
||||
/* error messages for the codes above */
|
||||
@@ -611,7 +614,9 @@ public final class MethodInfoLexer {
|
||||
|
||||
/* user code: */
|
||||
StringBuffer string = new StringBuffer();
|
||||
|
||||
boolean isMultiname = false;
|
||||
|
||||
long multinameId = 0;
|
||||
|
||||
/**
|
||||
@@ -1206,5 +1211,4 @@ public final class MethodInfoLexer {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+28
-4
@@ -1,46 +1,70 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.methodinfo_parser;
|
||||
|
||||
public class ParsedSymbol {
|
||||
|
||||
public int type;
|
||||
|
||||
public Object value;
|
||||
|
||||
public static final int TYPE_INTEGER = 1;
|
||||
|
||||
public static final int TYPE_FLOAT = 2;
|
||||
|
||||
public static final int TYPE_TRUE = 3;
|
||||
|
||||
public static final int TYPE_FALSE = 4;
|
||||
|
||||
public static final int TYPE_NULL = 5;
|
||||
|
||||
public static final int TYPE_UNDEFINED = 6;
|
||||
|
||||
public static final int TYPE_STRING = 7;
|
||||
|
||||
//8-12 namespace prefix
|
||||
public static final int TYPE_PRIVATE = 8;
|
||||
|
||||
public static final int TYPE_PACKAGE = 9;
|
||||
|
||||
public static final int TYPE_INTERNAL = 10;
|
||||
|
||||
public static final int TYPE_STATIC = 11;
|
||||
|
||||
public static final int TYPE_EXPLICIT = 12;
|
||||
|
||||
public static final int TYPE_PROTECTED = 13;
|
||||
|
||||
public static final int TYPE_NAMESPACE = 14;
|
||||
|
||||
public static final int TYPE_COLON = 15;
|
||||
|
||||
public static final int TYPE_COMMA = 16;
|
||||
|
||||
public static final int TYPE_DOTS = 17;
|
||||
|
||||
public static final int TYPE_MULTINAME = 18;
|
||||
|
||||
public static final int TYPE_IDENTIFIER = 19;
|
||||
|
||||
public static final int TYPE_EOF = 20;
|
||||
|
||||
public static final int TYPE_STAR = 21;
|
||||
|
||||
public static final int TYPE_ASSIGN = 22;
|
||||
|
||||
public ParsedSymbol(int type, Object value) {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.types;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.AVM2Code;
|
||||
@@ -25,9 +26,13 @@ import java.util.List;
|
||||
public class ABCException implements Serializable {
|
||||
|
||||
public int start;
|
||||
|
||||
public int end;
|
||||
|
||||
public int target;
|
||||
|
||||
public int type_index;
|
||||
|
||||
public int name_index;
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* 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.abc.types;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.ABC;
|
||||
@@ -22,6 +23,7 @@ import java.util.List;
|
||||
public class ClassInfo {
|
||||
|
||||
public int cinit_index; //MethodInfo - static initializer
|
||||
|
||||
public Traits static_traits = new Traits();
|
||||
|
||||
public boolean deleted;
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
@@ -26,7 +26,7 @@ public class Decimal {
|
||||
|
||||
public Decimal() {
|
||||
}
|
||||
|
||||
|
||||
public Decimal(byte[] data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user