From e24f3b6d40597bf9ca240b0296fb05d1aa710792 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 7 Feb 2021 13:47:46 +0100 Subject: [PATCH] try..catch break detection fix --- .../src/com/jpexs/decompiler/graph/Graph.java | 8 ++-- ...ctionScript3CrossCompileDecompileTest.java | 25 ++++++++++++ ...ipt3CrossCompileSwfToolsDecompileTest.java | 26 +++++++++++++ .../bin/as3_cross_compile.air.swf | Bin 3992 -> 4120 bytes .../bin/as3_cross_compile.flex.swf | Bin 5397 -> 5642 bytes .../bin/as3_cross_compile.flex_apache.swf | Bin 5391 -> 5609 bytes .../bin/as3_cross_compile.swftools.swf | Bin 2430 -> 2511 bytes .../testdata/as3_cross_compile/src/Main.as | 1 + .../src/tests/TestTryCatchInWhile3.as | 12 +++--- .../src/tests/TestTryCatchInWhile4.as | 4 +- .../src/tests/TestTryCatchInWhile5.as | 36 ++++++++++++++++++ 11 files changed, 100 insertions(+), 12 deletions(-) create mode 100644 libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchInWhile5.as diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java index c22f6cc64..924592ae6 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java @@ -1328,9 +1328,9 @@ public class Graph { } List loops2 = new ArrayList<>(loops); - /*for (Loop l : loops2) { + for (Loop l : loops2) { l.breakCandidatesLocked++; - }*/ + } for (ThrowState ts : throwStates) { if (ts.throwingParts.contains(part) && (currentThrowStates.contains(ts) || ts.state != 1)) { GraphPart t = ts.targetPart; @@ -1339,9 +1339,9 @@ public class Graph { } } } - /*for (Loop l : loops2) { + for (Loop l : loops2) { l.breakCandidatesLocked--; - }*/ + } if (isLoop && currentLoop != null) { GraphPart found; diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileDecompileTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileDecompileTest.java index a114d4ae8..9a33aab15 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileDecompileTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileDecompileTest.java @@ -203,6 +203,31 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi false); } + @Test(dataProvider = "swfNamesProvider") + public void testTryCatchInWhile5(String swfUsed) { + decompileMethod(swfUsed, "testTryCatchInWhile5", "var i:int = 0;\r\n" + + "var j:int = 0;\r\n" + + "i = 0;\r\n" + + "j = 5;\r\n" + + "while(i < 10)\r\n" + + "{\r\n" + + "try\r\n" + + "{\r\n" + + "trace(\"in try\");\r\n" + + "}\r\n" + + "catch(e:Error)\r\n" + + "{\r\n" + + "if(j > 4)\r\n" + + "{\r\n" + + "throw new Error(\"Problem: \" + e);\r\n" + + "}\r\n" + + "}\r\n" + + "i++;\r\n" + + "}\r\n" + + "trace(\"after\");\r\n", + false); + } + @Test(dataProvider = "swfNamesProvider") public void testTryCatchLoop(String swfUsed) { decompileMethod(swfUsed, "testTryCatchLoop", "var j:int = 0;\r\n" diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileSwfToolsDecompileTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileSwfToolsDecompileTest.java index f8636d176..4a3862c2d 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileSwfToolsDecompileTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileSwfToolsDecompileTest.java @@ -194,6 +194,32 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript false); } + @Test + public void testTryCatchInWhile5() { + decompileMethod("swftools", "testTryCatchInWhile5", "var _loc1_:int = 0;\r\n" + + "_loc1_ = 0;\r\n" + + "var _loc2_:int = 0;\r\n" + + "_loc2_ = 5;\r\n" + + "while(_loc1_ < 10)\r\n" + + "{\r\n" + + "try\r\n" + + "{\r\n" + + "trace(\"in try\");\r\n" + + "}\r\n" + + "catch(e:Error)\r\n" + + "{\r\n" + + "var _loc3_:* = e;\r\n" + + "if(_loc2_ > 4)\r\n" + + "{\r\n" + + "throw new Error(\"Problem: \" + _loc3_);\r\n" + + "}\r\n" + + "}\r\n" + + "_loc1_++;\r\n" + + "}\r\n" + + "trace(\"after\");\r\n", + false); + } + @Test public void testTryCatchLoop() { decompileMethod("swftools", "testTryCatchLoop", "var _loc1_:int = 0;\r\n" 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 3cfaf17dd3142deca945de37f8a11059786d75bd..6d0bdbefd5cb38fc67ad186324927f13d21dedb3 100644 GIT binary patch literal 4120 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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 9aec6df3b8946bc1e5833bad168674c3483d5f66..4a016eb05c6c3f2d21efdada84103fdc841566e2 100644 GIT binary patch literal 5609 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 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 eece0b7e7..67443d627 100644 --- a/libsrc/ffdec_lib/testdata/as3_cross_compile/src/Main.as +++ b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/Main.as @@ -17,6 +17,7 @@ package TestTryCatchInWhile2; TestTryCatchInWhile3; TestTryCatchInWhile4; + TestTryCatchInWhile5; TestTryCatchLoop; TestTryCatchLoopBreak; TestTryCatchExceptionUsage diff --git a/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchInWhile3.as b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchInWhile3.as index 3710d51dc..7ece8bd95 100644 --- a/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchInWhile3.as +++ b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchInWhile3.as @@ -12,20 +12,20 @@ package tests { var a:int; a = 0; - trace("before loop"); //1-17 - while (a > 5) //44-47 + trace("before loop"); + while (a > 5) { try { - return "intry return"; //20-23 + return "intry return"; } catch(e:Error) { - trace("in catch"); //26-43 + trace("in catch"); } - a++; //26-43 cont. + a++; } - return "OK";//48-50 + return "OK"; } } diff --git a/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchInWhile4.as b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchInWhile4.as index eb7f0b5d0..6f7489195 100644 --- a/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchInWhile4.as +++ b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchInWhile4.as @@ -16,7 +16,7 @@ package tests try { - trace("try2"); //12-21 + trace("try2"); if (a == 10){ trace("br"); break; @@ -29,7 +29,7 @@ package tests } trace("a=" + a); } - trace("after"); //61-66 + trace("after"); } } diff --git a/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchInWhile5.as b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchInWhile5.as new file mode 100644 index 000000000..4cc97cc8b --- /dev/null +++ b/libsrc/ffdec_lib/testdata/as3_cross_compile/src/tests/TestTryCatchInWhile5.as @@ -0,0 +1,36 @@ +package tests +{ + /** + * ... + * @author JPEXS + */ + public class TestTryCatchInWhile5 + { + + public function run() : void + { + var i:int; + i = 0; + var j:int; + j = 5; + while(i < 10) + { + try + { + trace("in try"); + } + catch (e:Error) + { + if (j > 4) { + throw new Error("Problem: "+e); + } + } + i++; + } + + trace("after"); + } + + } + +} \ No newline at end of file