Merge origin/master

This commit is contained in:
Jindra Petřík
2016-02-28 10:17:31 +01:00
12 changed files with 55 additions and 29 deletions

View File

@@ -334,6 +334,7 @@ public final class MethodBody implements Cloneable {
} else {
logger.log(Level.SEVERE, "Decompilation error in: " + path, ex);
}
convertException = ex;
Throwable cause = ex.getCause();
if (ex instanceof ExecutionException && cause instanceof Exception) {

View File

@@ -863,6 +863,7 @@ public abstract class Action implements GraphSourceItem {
} else {
logger.log(Level.SEVERE, "Decompilation error in: " + path, ex);
}
convertException = ex;
Throwable cause = ex.getCause();
if (ex instanceof ExecutionException && cause instanceof Exception) {
@@ -1023,11 +1024,12 @@ public abstract class Action implements GraphSourceItem {
}
}
out = ActionGraph.translateViaGraph(regNames, variables2, functions, actions.subList(adr2ip(actions, endAddr), adr2ip(actions, endAddr + size)), version, staticOperation, path + (cntName == null ? "" : "/" + cntName));
} catch (OutOfMemoryError | TranslateException | StackOverflowError ex2) {
logger.log(Level.SEVERE, "Decompilation error in: " + path, ex2);
if (ex2 instanceof OutOfMemoryError) {
} catch (OutOfMemoryError | TranslateException | StackOverflowError ex) {
logger.log(Level.SEVERE, "Decompilation error in: " + path, ex);
if (ex instanceof OutOfMemoryError) {
Helper.freeMem();
}
out = new ArrayList<>();
out.add(new CommentItem(new String[]{
"",
@@ -1035,7 +1037,7 @@ public abstract class Action implements GraphSourceItem {
" * " + AppResources.translate("decompilationError.obfuscated"),
Helper.decompilationErrorAdd == null ? null : " * " + Helper.decompilationErrorAdd,
" * " + AppResources.translate("decompilationError.errorType") + ": "
+ ex2.getClass().getSimpleName(),
+ ex.getClass().getSimpleName(),
""}));
}
outs.add(out);
@@ -1065,7 +1067,7 @@ public abstract class Action implements GraphSourceItem {
}
/*ActionJump && ActionIf removed*/
/*if ((action instanceof ActionEnumerate2) || (action instanceof ActionEnumerate)) {
/*if ((action instanceof ActionEnumerate2) || (action instanceof ActionEnumerate)) {
loopStart = ip + 1;
isForIn = true;
ip += 4;

View File

@@ -74,7 +74,6 @@ public class DefineButtonTag extends ButtonTag implements ASMSource {
/**
* Actions to perform
*/
//public List<Action> actions;
@HideInRawEdit
public ByteArrayRange actionBytes;

View File

@@ -51,7 +51,6 @@ public class DoActionTag extends Tag implements ASMSource {
/**
* List of actions to perform
*/
//public List<Action> actions = new ArrayList<Action>();
@HideInRawEdit
public ByteArrayRange actionBytes;

View File

@@ -58,7 +58,6 @@ public class DoInitActionTag extends Tag implements CharacterIdTag, ASMSource {
/**
* List of actions to perform
*/
//public List<Action> actions = new ArrayList<Action>();
@HideInRawEdit
public ByteArrayRange actionBytes;

View File

@@ -27,6 +27,7 @@ import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
import com.jpexs.decompiler.flash.tags.Tag;
import com.jpexs.decompiler.flash.tags.base.ASMSource;
import com.jpexs.decompiler.flash.types.annotations.Conditional;
import com.jpexs.decompiler.flash.types.annotations.HideInRawEdit;
import com.jpexs.decompiler.flash.types.annotations.Internal;
import com.jpexs.decompiler.flash.types.annotations.SWFType;
import com.jpexs.helpers.ByteArrayRange;
@@ -147,14 +148,10 @@ public class BUTTONCONDACTION implements ASMSource, Serializable {
*/
public boolean condOverDownToIdle;
/**
* Actions to perform
*/
//public List<Action> actions;
/**
* Actions to perform in byte array
*/
@Internal
@HideInRawEdit
public ByteArrayRange actionBytes;
/**

View File

@@ -27,6 +27,7 @@ import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
import com.jpexs.decompiler.flash.tags.Tag;
import com.jpexs.decompiler.flash.tags.base.ASMSource;
import com.jpexs.decompiler.flash.types.annotations.Conditional;
import com.jpexs.decompiler.flash.types.annotations.HideInRawEdit;
import com.jpexs.decompiler.flash.types.annotations.Internal;
import com.jpexs.helpers.ByteArrayRange;
import com.jpexs.helpers.Helper;
@@ -146,8 +147,7 @@ public class CLIPACTIONRECORD implements ASMSource, Serializable {
/**
* Actions to perform
*/
//public List<Action> actions;
@Internal
@HideInRawEdit
public ByteArrayRange actionBytes;
/**

View File

@@ -1406,4 +1406,26 @@ public class Helper {
lastIds.put(str, a);
return str + "_" + a;
}
public static boolean is64BitJre() {
String prop = System.getProperty("sun.arch.data.model");
return prop != null && prop.contains("64");
}
public static boolean is64BitOs() {
String arch = System.getenv("PROCESSOR_ARCHITECTURE");
String wow64Arch = System.getenv("PROCESSOR_ARCHITEW6432");
if (arch == null) {
return false;
}
return arch.endsWith("64")
|| wow64Arch != null && wow64Arch.endsWith("64");
}
public static void showOutOfMemoryWarning() {
}
}