From 3c72c84cd92bfeca4021cb7f3d3451780d5e0ce1 Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Fri, 5 Sep 2014 21:30:53 +0200 Subject: [PATCH] #664 Cannot expand fillStyles in DefineShape tags in raw edit fixed + some misssing files from the previous commit --- .../flash/console/CommandLineArgumentParser.java | 1 - .../decompiler/flash/gui/GenericTagTreePanel.java | 14 +++++++++++++- .../jpexs/decompiler/flash/gui/abc/ABCPanel.java | 6 +++--- .../flash/gui/abc/ASMSourceEditorPane.java | 1 - .../decompiler/flash/gui/abc/MethodCodePanel.java | 1 - 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/com/jpexs/decompiler/flash/console/CommandLineArgumentParser.java b/src/com/jpexs/decompiler/flash/console/CommandLineArgumentParser.java index 748bdfe35..d801a5f21 100644 --- a/src/com/jpexs/decompiler/flash/console/CommandLineArgumentParser.java +++ b/src/com/jpexs/decompiler/flash/console/CommandLineArgumentParser.java @@ -68,7 +68,6 @@ import com.jpexs.decompiler.flash.exporters.settings.ShapeExportSettings; import com.jpexs.decompiler.flash.exporters.settings.SoundExportSettings; import com.jpexs.decompiler.flash.exporters.settings.TextExportSettings; import com.jpexs.decompiler.flash.gui.Main; -import com.jpexs.decompiler.flash.gui.abc.ASMSourceEditorPane; import com.jpexs.decompiler.flash.helpers.collections.MyEntry; import com.jpexs.decompiler.flash.importers.BinaryDataImporter; import com.jpexs.decompiler.flash.importers.ImageImporter; diff --git a/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java b/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java index c3a759098..b35c8f18e 100644 --- a/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java +++ b/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java @@ -792,7 +792,19 @@ public class GenericTagTreePanel extends GenericTagPanel { FieldNode condnode = (FieldNode) (mod).getNodeByPath(fulldf); if (condnode != null) { - fieldMap.put(sf, (Boolean) ReflectionTools.getValue(condnode.obj, condnode.field, condnode.index)); + Object value = ReflectionTools.getValue(condnode.obj, condnode.field, condnode.index); + if (value instanceof Boolean) { + fieldMap.put(sf, (Boolean) value); + } else if (value instanceof Integer) { + int intValue = (int) value; + boolean found = false; + for (int i : cond.options()) { + if (i == intValue) { + found = true; + } + } + fieldMap.put(sf, found); + } } else { fieldMap.put(sf, true); } diff --git a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java index bdc241090..e273f11c1 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java @@ -869,9 +869,9 @@ public class ABCPanel extends JPanel implements ItemListener, ActionListener, Se body.max_stack = 1; body.exceptions = new ABCException[0]; AVM2Code code = new AVM2Code(); - code.code.add(new AVM2Instruction(0, new GetLocal0Ins(), new int[0], new byte[0])); - code.code.add(new AVM2Instruction(0, new PushScopeIns(), new int[0], new byte[0])); - code.code.add(new AVM2Instruction(0, new ReturnVoidIns(), new int[0], new byte[0])); + code.code.add(new AVM2Instruction(0, new GetLocal0Ins(), new int[0])); + code.code.add(new AVM2Instruction(0, new PushScopeIns(), new int[0])); + code.code.add(new AVM2Instruction(0, new ReturnVoidIns(), new int[0])); body.code = code; Traits traits = new Traits(); traits.traits = new ArrayList<>(); diff --git a/src/com/jpexs/decompiler/flash/gui/abc/ASMSourceEditorPane.java b/src/com/jpexs/decompiler/flash/gui/abc/ASMSourceEditorPane.java index 67b05175b..c5590b70f 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/ASMSourceEditorPane.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/ASMSourceEditorPane.java @@ -19,7 +19,6 @@ package com.jpexs.decompiler.flash.gui.abc; import com.jpexs.decompiler.flash.abc.ABC; import com.jpexs.decompiler.flash.abc.ABCInputStream; import com.jpexs.decompiler.flash.abc.avm2.AVM2Code; -import com.jpexs.decompiler.flash.abc.avm2.ConstantPool; import com.jpexs.decompiler.flash.abc.avm2.UnknownInstructionCode; import com.jpexs.decompiler.flash.abc.avm2.graph.AVM2Graph; import com.jpexs.decompiler.flash.abc.avm2.parser.ParseException; diff --git a/src/com/jpexs/decompiler/flash/gui/abc/MethodCodePanel.java b/src/com/jpexs/decompiler/flash/gui/abc/MethodCodePanel.java index a17f47cb9..3b1758fe0 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/MethodCodePanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/MethodCodePanel.java @@ -17,7 +17,6 @@ package com.jpexs.decompiler.flash.gui.abc; import com.jpexs.decompiler.flash.abc.ABC; -import com.jpexs.decompiler.flash.abc.avm2.ConstantPool; import com.jpexs.decompiler.flash.abc.types.traits.Trait; import com.jpexs.decompiler.flash.exporters.modes.ScriptExportMode; import com.jpexs.decompiler.flash.gui.AppStrings;