diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/types/traits/Trait.java b/trunk/src/com/jpexs/decompiler/flash/abc/types/traits/Trait.java index d0974d141..8b3e3931d 100644 --- a/trunk/src/com/jpexs/decompiler/flash/abc/types/traits/Trait.java +++ b/trunk/src/com/jpexs/decompiler/flash/abc/types/traits/Trait.java @@ -58,6 +58,9 @@ public abstract class Trait implements Serializable { //if (abc.constants.constant_namespace[m.namespace_index].kind == Namespace.KIND_NAMESPACE) { { for (ABCContainerTag abcTag : abcTags) { + if (m.namespace_index == -1) { + break; + } nsname = abcTag.getABC().nsValueToName(abc.constants.constant_namespace[m.namespace_index].getName(abc.constants)); if (nsname.equals("-")) { break; diff --git a/trunk/src/com/jpexs/decompiler/flash/configuration/Configuration.java b/trunk/src/com/jpexs/decompiler/flash/configuration/Configuration.java index b48064d31..bc379c83b 100644 --- a/trunk/src/com/jpexs/decompiler/flash/configuration/Configuration.java +++ b/trunk/src/com/jpexs/decompiler/flash/configuration/Configuration.java @@ -387,9 +387,9 @@ public class Configuration { Object defaultValue = getDefaultValue(field); if (config.containsKey(name)) { - field.set(null, new ConfigurationItem(field.getName(), defaultValue, config.get(name))); + field.set(null, new ConfigurationItem(name, defaultValue, config.get(name))); } else { - field.set(null, new ConfigurationItem(field.getName(), defaultValue)); + field.set(null, new ConfigurationItem(name, defaultValue)); } } } catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException ex) { diff --git a/trunk/src/com/jpexs/decompiler/flash/configuration/ConfigurationItem.java b/trunk/src/com/jpexs/decompiler/flash/configuration/ConfigurationItem.java index 36bef4809..2f9bb546c 100644 --- a/trunk/src/com/jpexs/decompiler/flash/configuration/ConfigurationItem.java +++ b/trunk/src/com/jpexs/decompiler/flash/configuration/ConfigurationItem.java @@ -34,10 +34,12 @@ public class ConfigurationItem { } public ConfigurationItem(String name, T defaultValue) { + this.name = name; this.defaultValue = defaultValue; } public ConfigurationItem(String name, T defaultValue, T value) { + this.name = name; hasValue = true; this.defaultValue = defaultValue; this.value = value; diff --git a/trunk/src/com/jpexs/decompiler/flash/console/CommandLineArgumentParser.java b/trunk/src/com/jpexs/decompiler/flash/console/CommandLineArgumentParser.java index d77365dbf..531bc8e92 100644 --- a/trunk/src/com/jpexs/decompiler/flash/console/CommandLineArgumentParser.java +++ b/trunk/src/com/jpexs/decompiler/flash/console/CommandLineArgumentParser.java @@ -224,7 +224,7 @@ public class CommandLineArgumentParser { if (key.toLowerCase().equals(item.getName().toLowerCase())) { Boolean bValue = parseBooleanConfigValue(value); if (bValue != null) { - System.out.println("Config " + item + " set to " + bValue); + System.out.println("Config " + item.getName() + " set to " + bValue); item.set(bValue); } } diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/Main.java b/trunk/src/com/jpexs/decompiler/flash/gui/Main.java index bfb204d6b..2eff863d9 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/Main.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/Main.java @@ -349,6 +349,8 @@ public class Main { public static boolean openFile(String swfFile) { try { + File file = new File(swfFile); + swfFile = file.getCanonicalPath(); Configuration.addRecentFile(swfFile); boolean ok = openFile(swfFile, new FileInputStream(swfFile)); if (ok) { diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/MainFrame.java b/trunk/src/com/jpexs/decompiler/flash/gui/MainFrame.java index e7a704066..3022e3fd5 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/MainFrame.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/MainFrame.java @@ -3067,8 +3067,11 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T }, new Callback>() { @Override - public void call(AsyncResult arg1) { + public void call(AsyncResult result) { setSourceTask = null; + if (result.error != null) { + abcPanel.decompiledTextArea.setText("//Decompilation error: " + result.error); + } Main.stopWork(); } }); diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/action/ActionPanel.java b/trunk/src/com/jpexs/decompiler/flash/gui/action/ActionPanel.java index d659ca36e..38ad9b141 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/action/ActionPanel.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/action/ActionPanel.java @@ -392,8 +392,11 @@ public class ActionPanel extends JPanel implements ActionListener { }, new Callback>() { @Override - public void call(AsyncResult arg1) { + public void call(AsyncResult result) { setSourceTask = null; + if (result.error != null) { + decompiledEditor.setText("//Decompilation error: " + result.error); + } Main.stopWork(); }