From a36ca2df20ea080fbaa378b422c029f4d0b553bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sat, 20 Feb 2021 20:56:14 +0100 Subject: [PATCH] Fixed: AS3 direct editation - popscope in catch on continue and break --- CHANGELOG.md | 1 + .../flash/SourceGeneratorLocalData.java | 3 ++ .../parser/script/AVM2SourceGenerator.java | 25 +++++++++ .../bin/as3_cross_compile.air.swf | Bin 4900 -> 5145 bytes .../bin/as3_cross_compile.flex.swf | Bin 6638 -> 6945 bytes .../bin/as3_cross_compile.flex_apache.swf | Bin 6621 -> 6903 bytes .../bin/as3_cross_compile.swftools.swf | Bin 2828 -> 2966 bytes .../obj/as3_cross_compileConfig.old | 2 +- .../obj/as3_cross_compileConfig.xml | 2 +- .../testdata/as3_cross_compile/src/Main.as | 2 + .../src/tests/TestTryCatchLoopBreak6.as | 50 ++++++++++++++++++ .../src/tests/TestTryCatchReturn.as | 33 ++++++++++++ 12 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchLoopBreak6.as create mode 100644 libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchReturn.as diff --git a/CHANGELOG.md b/CHANGELOG.md index f0c5c2adb..458df1eaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ All notable changes to this project will be documented in this file. - AS3 direct editation - coerce in setproperty - AS3 direct editation - unary minus (negate) compiled as 0 - value - AS3 direct editation - using finally clause for continue and break +- AS3 direct editation - popscope in catch on continue and break - #1159, #1608 Regexp syntax hilight when not a regexp (only division) again - Graphviz Graph not showing AS3 exception end - #1609 First frame missing in frame to PDF export diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SourceGeneratorLocalData.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SourceGeneratorLocalData.java index a6239d157..ee5076110 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SourceGeneratorLocalData.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SourceGeneratorLocalData.java @@ -82,6 +82,9 @@ public class SourceGeneratorLocalData implements Serializable { public List openedLoops = new ArrayList<>(); + public List> catchesOpenedLoops = new ArrayList<>(); + public List catchesTempRegs = new ArrayList<>(); + public String getFullClass() { return pkg == null ? currentClass : pkg.addWithSuffix(currentClass).toRawString(); } 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 f7702465f..829cc37e4 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 @@ -27,8 +27,10 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instructions; import com.jpexs.decompiler.flash.abc.avm2.instructions.InstructionDefinition; import com.jpexs.decompiler.flash.abc.avm2.instructions.construction.ConstructSuperIns; import com.jpexs.decompiler.flash.abc.avm2.instructions.jumps.JumpIns; +import com.jpexs.decompiler.flash.abc.avm2.instructions.localregs.KillIns; import com.jpexs.decompiler.flash.abc.avm2.instructions.other.ReturnValueIns; import com.jpexs.decompiler.flash.abc.avm2.instructions.other.ReturnVoidIns; +import com.jpexs.decompiler.flash.abc.avm2.instructions.stack.PopScopeIns; import com.jpexs.decompiler.flash.abc.avm2.model.AVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.ApplyTypeAVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.BooleanAVM2Item; @@ -723,6 +725,16 @@ public class AVM2SourceGenerator implements SourceGenerator { } ret.add(ins(AVM2Instructions.Label)); } + + for (int i = 0; i < localData.catchesOpenedLoops.size(); i++) { + List openedLoops = localData.catchesOpenedLoops.get(i); + + if (openedLoops.contains(item.loopId)) { + ret.add(ins(new PopScopeIns())); + } + ret.add(ins(new KillIns(), localData.catchesTempRegs.get(i))); + } + AVM2Instruction abreak = ins(new BreakJumpIns(item.loopId), 0); ret.add(abreak); return ret; @@ -830,9 +842,13 @@ public class AVM2SourceGenerator implements SourceGenerator { } } } + localData.catchesTempRegs.add(tempReg.getVal()); localData.scopeStack.add(new LocalRegAVM2Item(null, null, tempReg.getVal(), null)); + localData.catchesOpenedLoops.add(new ArrayList<>(localData.openedLoops)); catchCmd.addAll(generateToInsList(localData, item.catchCommands.get(c))); + localData.catchesOpenedLoops.remove(localData.catchesOpenedLoops.size() - 1); localData.scopeStack.remove(localData.scopeStack.size() - 1); + localData.catchesTempRegs.remove(localData.catchesTempRegs.size() - 1); catchCmd.add(ins(AVM2Instructions.PopScope)); catchCmd.addAll(toInsList(AssignableAVM2Item.killTemp(localData, this, Arrays.asList(tempReg)))); catchCmds.add(catchCmd); @@ -1090,6 +1106,15 @@ public class AVM2SourceGenerator implements SourceGenerator { ret.add(ins(AVM2Instructions.Label)); } + for (int i = 0; i < localData.catchesOpenedLoops.size(); i++) { + List openedLoops = localData.catchesOpenedLoops.get(i); + + if (openedLoops.contains(item.loopId)) { + ret.add(ins(new PopScopeIns())); + } + ret.add(ins(new KillIns(), localData.catchesTempRegs.get(i))); + } + AVM2Instruction acontinue = ins(new ContinueJumpIns(item.loopId), 0); ret.add(acontinue); return ret; diff --git a/libsrc/ffdec_lib/testdata/as3_cross_compile/bin/as3_cross_compile.air.swf b/libsrc/ffdec_lib/testdata/as3_cross_compile/bin/as3_cross_compile.air.swf index bcc07490557a13afc0a245ded31057f6a69ce524..4226b39d1de7b94e7a5ac8a3994447e03c73a39e 100644 GIT binary patch literal 5145 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 H*(rZ~q#F{6 literal 4900 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 WQV`hf@Pmp8`~UGT0r5W=q?*=gAa1+> diff --git a/libsrc/ffdec_lib/testdata/as3_cross_compile/bin/as3_cross_compile.flex.swf b/libsrc/ffdec_lib/testdata/as3_cross_compile/bin/as3_cross_compile.flex.swf index e1f77262b93fb7a8c3110fba681570756e3ff643..30fe4d1c4a0e2d9f49df45126a63b27f9ebd79be 100644 GIT binary patch literal 6945 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 literal 6638 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 diff --git a/libsrc/ffdec_lib/testdata/as3_cross_compile/bin/as3_cross_compile.flex_apache.swf b/libsrc/ffdec_lib/testdata/as3_cross_compile/bin/as3_cross_compile.flex_apache.swf index 55b2038ee0fb56ca744e2714e6734e7ce272bee4..02e63822ec299c988d7b9d71f003d078df82bc40 100644 GIT binary patch literal 6903 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 xrF&aYwEU?zuoCGV@-F0LTsHs! literal 6621 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 M_#sRF1LLy8kxBKvMF0Q* literal 2828 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 CONFIG::timeStamp - '09.02.2021' + '20.02.2021' CONFIG::air diff --git a/libsrc/ffdec_lib/testdata/as3_cross_compile/obj/as3_cross_compileConfig.xml b/libsrc/ffdec_lib/testdata/as3_cross_compile/obj/as3_cross_compileConfig.xml index 8bd4a91f5..7c7c25007 100644 --- a/libsrc/ffdec_lib/testdata/as3_cross_compile/obj/as3_cross_compileConfig.xml +++ b/libsrc/ffdec_lib/testdata/as3_cross_compile/obj/as3_cross_compileConfig.xml @@ -16,7 +16,7 @@ CONFIG::timeStamp - '09.02.2021' + '20.02.2021' CONFIG::air diff --git a/libsrc/ffdec_lib/testdata/as3_cross_compile/src/Main.as b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/Main.as index db5b45843..83afa9c8f 100644 --- a/libsrc/ffdec_lib/testdata/as3_cross_compile/src/Main.as +++ b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/Main.as @@ -25,6 +25,8 @@ package TestTryCatchLoopBreak3; TestTryCatchLoopBreak4; TestTryCatchLoopBreak5; + TestTryCatchLoopBreak6; + TestTryCatchReturn; TestTryCatchExceptionUsage TestTryFinally; TestTryFinallyDirectReturnInFinally; diff --git a/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchLoopBreak6.as b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchLoopBreak6.as new file mode 100644 index 000000000..ca17ed542 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchLoopBreak6.as @@ -0,0 +1,50 @@ +package tests +{ + import flash.errors.EOFError; + /** + * ... + * @author JPEXS + */ + public class TestTryCatchLoopBreak6 + { + + + public function run() : void + { + var a:int; + a = 0; + trace("before loop"); + while (a < 10) { + try + { + trace("in try"); + } + catch(e:Error) + { + trace("in catch1"); + if (a > 3) + { + break; + } + try + { + trace("in try2"); + } + catch(e:Error) + { + trace("in catch2"); + if (a > 4) + { + break; + } + } + } + a++; + } + trace("after"); + + } + + } + +} \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchReturn.as b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchReturn.as new file mode 100644 index 000000000..781d32637 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchReturn.as @@ -0,0 +1,33 @@ +package tests +{ + /** + * ... + * @author JPEXS + */ + public class TestTryCatchReturn + { + + public function run() : int + { + var a:int = 5; + trace("before try"); + try + { + trace("in try"); + } + catch (e:Error) + { + trace("in catch"); + if (a == 5) + { + return a; + } + trace("in catch2"); + } + trace("after"); + return -1; + } + + } + +} \ No newline at end of file