diff --git a/CHANGELOG.md b/CHANGELOG.md index cd6b5bfa6..60280d471 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ All notable changes to this project will be documented in this file. - [#2310] Text search history showing as null - [#2295], [#2311] AS1/2 p-code freezing on highlighting ConstantPool - [#2304] GFX files truncated +- [#2297] AS1/2/3 direct editation - if..else clause broken when using continue/break ## [21.0.5] - 2024-09-05 ### Fixed @@ -3559,6 +3560,7 @@ Major version of SWF to XML export changed to 2. [#2295]: https://www.free-decompiler.com/flash/issues/2295 [#2311]: https://www.free-decompiler.com/flash/issues/2311 [#2304]: https://www.free-decompiler.com/flash/issues/2304 +[#2297]: https://www.free-decompiler.com/flash/issues/2297 [#2293]: https://www.free-decompiler.com/flash/issues/2293 [#2294]: https://www.free-decompiler.com/flash/issues/2294 [#2299]: https://www.free-decompiler.com/flash/issues/2299 diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AVM2SourceGenerator.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AVM2SourceGenerator.java index c8e6486b1..37c05c4ae 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AVM2SourceGenerator.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AVM2SourceGenerator.java @@ -359,9 +359,10 @@ public class AVM2SourceGenerator implements SourceGenerator { } AVM2Instruction ajmp = null; if (onFalse != null) { - if (!((!nonempty(onTrue).isEmpty()) - && ((onTrue.get(onTrue.size() - 1).definition instanceof ContinueJumpIns) - || ((onTrue.get(onTrue.size() - 1).definition instanceof BreakJumpIns))))) { + if (onTrueCmds.isEmpty() || + !((onTrueCmds.get(onTrueCmds.size() - 1) instanceof ContinueItem) + || (onTrueCmds.get(onTrueCmds.size() - 1) instanceof BreakItem)) + ) { ajmp = ins(AVM2Instructions.Jump, 0); onTrue.add(ajmp); } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionSourceGenerator.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionSourceGenerator.java index d96c120e5..05330ace0 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionSourceGenerator.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionSourceGenerator.java @@ -183,10 +183,10 @@ public class ActionSourceGenerator implements SourceGenerator { ifaif.setJumpOffset(onTrueLen); ActionJump ajmp = null; if (onFalse != null) { - if (!((!nonempty(onTrue).isEmpty()) - && (onTrue.get(onTrue.size() - 1) instanceof ActionJump) - && ((((ActionJump) onTrue.get(onTrue.size() - 1)).isContinue) - || (((ActionJump) onTrue.get(onTrue.size() - 1)).isBreak)))) { + if (onTrueCmds.isEmpty() || + !((onTrueCmds.get(onTrueCmds.size() - 1) instanceof ContinueItem) + || (onTrueCmds.get(onTrueCmds.size() - 1) instanceof BreakItem)) + ) { ajmp = new ActionJump(0, charset); ret.add(ajmp); onTrueLen += ajmp.getTotalActionLength();