do not copy big byte arrays, store only references (ByteArrayRange) e.g in image tags

This commit is contained in:
2014-11-09 22:40:36 +01:00
parent 270cc40856
commit 3456d04d38
151 changed files with 2787 additions and 2512 deletions
@@ -93,7 +93,7 @@ import java.util.logging.Logger;
* Represents one ACTIONRECORD, also has some static method to work with Actions
*/
public class Action implements GraphSourceItem {
private boolean ignored = false;
/**
* Action type identifier
@@ -103,7 +103,7 @@ public class Action implements GraphSourceItem {
* Length of action data
*/
public int actionLength;
private long address;
private long address;
/**
* Names of ActionScript properties
@@ -880,7 +880,7 @@ public class Action implements GraphSourceItem {
"",
" * " + AppResources.translate("decompilationError"),
" * " + AppResources.translate("decompilationError.obfuscated"),
Helper.decompilationErrorAdd==null?null:" * "+Helper.decompilationErrorAdd,
Helper.decompilationErrorAdd == null ? null : " * " + Helper.decompilationErrorAdd,
" * " + AppResources.translate("decompilationError.errorType") + ": "
+ ex2.getClass().getSimpleName(),
""}));
@@ -49,7 +49,7 @@ public class CallFunctionActionItem extends ActionItem {
@Override
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
String paramStr = "";
writer.append(IdentifiersDeobfuscation.printIdentifier(false,((DirectValueActionItem) functionName).toStringNoQuotes(localData)));
writer.append(IdentifiersDeobfuscation.printIdentifier(false, ((DirectValueActionItem) functionName).toStringNoQuotes(localData)));
writer.spaceBeforeCallParenthesies(arguments.size());
writer.append("(");
for (int t = 0; t < arguments.size(); t++) {
@@ -73,7 +73,7 @@ public class CallMethodActionItem extends ActionItem {
scriptObject.toString(writer, localData);
}
writer.append(".");
writer.append(IdentifiersDeobfuscation.printIdentifier(false,methodName.toStringNoQuotes(localData)));
writer.append(IdentifiersDeobfuscation.printIdentifier(false, methodName.toStringNoQuotes(localData)));
} else {
scriptObject.toString(writer, localData);
}
@@ -76,7 +76,7 @@ public class DefineLocalActionItem extends ActionItem implements SetTypeActionIt
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
writer.append("var ");
if (((name instanceof DirectValueActionItem)) && (((DirectValueActionItem) name).isString()) && (!IdentifiersDeobfuscation.isValidName(false,((DirectValueActionItem) name).toStringNoQuotes(localData), "this", "super"))) {
if (((name instanceof DirectValueActionItem)) && (((DirectValueActionItem) name).isString()) && (!IdentifiersDeobfuscation.isValidName(false, ((DirectValueActionItem) name).toStringNoQuotes(localData), "this", "super"))) {
writer.append(IdentifiersDeobfuscation.makeObfuscatedIdentifier(((DirectValueActionItem) name).toStringNoQuotes(localData)));
} else {
stripQuotes(name, localData, writer);
@@ -83,14 +83,14 @@ public class FunctionActionItem extends ActionItem {
if (calculatedFunctionName != null) {
writer.append(" ");
String fname = calculatedFunctionName.toStringNoQuotes(localData);
if (!IdentifiersDeobfuscation.isValidName(false,fname)) {
if (!IdentifiersDeobfuscation.isValidName(false, fname)) {
writer.append(IdentifiersDeobfuscation.makeObfuscatedIdentifier(fname));
} else {
calculatedFunctionName.appendToNoQuotes(writer, localData);
}
} else if (!functionName.isEmpty()) {
writer.append(" ");
if (!IdentifiersDeobfuscation.isValidName(false,functionName)) {
if (!IdentifiersDeobfuscation.isValidName(false, functionName)) {
writer.append(IdentifiersDeobfuscation.makeObfuscatedIdentifier(functionName));
} else {
writer.append(functionName);
@@ -107,7 +107,7 @@ public class FunctionActionItem extends ActionItem {
if (pname == null || pname.isEmpty()) {
pname = new RegisterNumber(regStart + p).translate();
}
if (!IdentifiersDeobfuscation.isValidName(false,pname)) {
if (!IdentifiersDeobfuscation.isValidName(false, pname)) {
writer.append(IdentifiersDeobfuscation.makeObfuscatedIdentifier(pname));
}
writer.append(pname);
@@ -50,7 +50,7 @@ public class GetMemberActionItem extends ActionItem {
@Override
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
object.toString(writer, localData);
if ((!(memberName instanceof DirectValueActionItem)) || (!((DirectValueActionItem) memberName).isString()) || (!IdentifiersDeobfuscation.isValidName(false,((DirectValueActionItem) memberName).toStringNoQuotes(localData)))) {
if ((!(memberName instanceof DirectValueActionItem)) || (!((DirectValueActionItem) memberName).isString()) || (!IdentifiersDeobfuscation.isValidName(false, ((DirectValueActionItem) memberName).toStringNoQuotes(localData)))) {
writer.append("[");
memberName.toString(writer, localData);
return writer.append("]");
@@ -59,7 +59,7 @@ public class GetVariableActionItem extends ActionItem {
@Override
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
if (((name instanceof DirectValueActionItem)) && (((DirectValueActionItem) name).isString()) && (!IdentifiersDeobfuscation.isValidName(false,((DirectValueActionItem) name).toStringNoQuotes(localData), "this", "super"))) {
if (((name instanceof DirectValueActionItem)) && (((DirectValueActionItem) name).isString()) && (!IdentifiersDeobfuscation.isValidName(false, ((DirectValueActionItem) name).toStringNoQuotes(localData), "this", "super"))) {
return writer.append(IdentifiersDeobfuscation.makeObfuscatedIdentifier(((DirectValueActionItem) name).toStringNoQuotes(localData)));
} else if ((!(name instanceof DirectValueActionItem)) || (!((DirectValueActionItem) name).isString())) {
writer.append("eval(");
@@ -85,7 +85,7 @@ public class SetMemberActionItem extends ActionItem implements SetTypeActionItem
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
object.toString(writer, localData);
if ((!(objectName instanceof DirectValueActionItem)) || (!((DirectValueActionItem) objectName).isString()) || (!IdentifiersDeobfuscation.isValidName(false,((DirectValueActionItem) objectName).toStringNoQuotes(localData)))) {
if ((!(objectName instanceof DirectValueActionItem)) || (!((DirectValueActionItem) objectName).isString()) || (!IdentifiersDeobfuscation.isValidName(false, ((DirectValueActionItem) objectName).toStringNoQuotes(localData)))) {
writer.append("[");
objectName.toString(writer, localData);
writer.append("]");
@@ -73,7 +73,7 @@ public class SetVariableActionItem extends ActionItem implements SetTypeActionIt
@Override
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
if (((name instanceof DirectValueActionItem)) && (((DirectValueActionItem) name).isString()) && (!IdentifiersDeobfuscation.isValidName(false,((DirectValueActionItem) name).toStringNoQuotes(localData), "this", "super"))) {
if (((name instanceof DirectValueActionItem)) && (((DirectValueActionItem) name).isString()) && (!IdentifiersDeobfuscation.isValidName(false, ((DirectValueActionItem) name).toStringNoQuotes(localData), "this", "super"))) {
writer.append(IdentifiersDeobfuscation.makeObfuscatedIdentifier(((DirectValueActionItem) name).toStringNoQuotes(localData)));
writer.append(" = ");
return value.toString(writer, localData);