From 079cf8a56cbd17fd46fff9d9d91a03a3d26a9716 Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Fri, 25 Sep 2015 13:40:12 +0200 Subject: [PATCH] fix --- .../action/deobfuscation/ActionDeobfuscator.java | 3 ++- .../deobfuscation/ActionDeobfuscatorSimple.java | 3 ++- .../flash/action/model/DirectValueActionItem.java | 11 +++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/deobfuscation/ActionDeobfuscator.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/deobfuscation/ActionDeobfuscator.java index a1d58a164..085971a7f 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/deobfuscation/ActionDeobfuscator.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/deobfuscation/ActionDeobfuscator.java @@ -181,7 +181,8 @@ public class ActionDeobfuscator extends ActionDeobfuscatorSimple { } } - int unreachableCount = actions.getUnreachableActions(i, result.idx).size(); + List unreachable = actions.getUnreachableActions(i, result.idx); + int unreachableCount = unreachable == null ? 0 : unreachable.size(); if (allValueValid && newIstructionCount + 2 < unreachableCount) { Action target = actions.get(result.idx); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/deobfuscation/ActionDeobfuscatorSimple.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/deobfuscation/ActionDeobfuscatorSimple.java index abeaa9b73..56049e750 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/deobfuscation/ActionDeobfuscatorSimple.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/deobfuscation/ActionDeobfuscatorSimple.java @@ -154,7 +154,8 @@ public class ActionDeobfuscatorSimple implements SWFDecompilerListener { if (result.idx != -1) { int newIstructionCount = 1 /*jump */ + result.stack.size(); - int unreachableCount = actions.getUnreachableActions(i, result.idx).size(); + List unreachable = actions.getUnreachableActions(i, result.idx); + int unreachableCount = unreachable == null ? 0 : unreachable.size(); if (newIstructionCount < unreachableCount) { Action target = actions.get(result.idx); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/DirectValueActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/DirectValueActionItem.java index 819f64c2b..f8b787cf8 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/DirectValueActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/DirectValueActionItem.java @@ -156,6 +156,17 @@ public class DirectValueActionItem extends ActionItem implements SimpleValue { @Override public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) { + if (value instanceof Double) { + if (Double.compare((double) (Double) value, 0) == 0) { + return writer.append("0"); + } + } + if (value instanceof Float) { + if (Float.compare((float) (Float) value, 0) == 0) { + return writer.append("0"); + } + } + if (value instanceof String) { return writer.append("\"").append(Helper.escapeActionScriptString((String) value)).append("\""); }