From df3fde1f96841be342cb57fde1b2f0131501f176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 31 Jan 2021 21:34:33 +0100 Subject: [PATCH] Fixed precontinue detector - incorrectly merged ifs --- .../graph/precontinues/GraphPrecontinueDetector.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/precontinues/GraphPrecontinueDetector.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/precontinues/GraphPrecontinueDetector.java index be71c521e..806ab1774 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/precontinues/GraphPrecontinueDetector.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/precontinues/GraphPrecontinueDetector.java @@ -12,7 +12,8 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.graph.precontinues; import com.jpexs.decompiler.graph.GraphPart; @@ -282,13 +283,13 @@ public class GraphPrecontinueDetector { && node.next.get(0).prev.size() == 1) { IfNode ifNode = new IfNode(); ifNode.onTrue = node.next.get(0); + Node after = node.next.get(1); ifNode.onTrue.parentNode = ifNode; ifNode.onTrue.removeFromGraph(); ifNode.onFalse = null; ifNode.graphPart = node.graphPart; ifNode.prev = new ArrayList<>(node.prev); node.replacePrevs(ifNode); - Node after = node.next.get(1); node.removeFromGraph(); ifNode.next.add(after); after.prev.add(ifNode); @@ -314,12 +315,12 @@ public class GraphPrecontinueDetector { IfNode ifNode = new IfNode(); ifNode.onTrue = null; ifNode.onFalse = node.next.get(1); + Node after = node.next.get(0); ifNode.onFalse.parentNode = ifNode; ifNode.onFalse.removeFromGraph(); ifNode.graphPart = node.graphPart; ifNode.prev = new ArrayList<>(node.prev); node.replacePrevs(ifNode); - Node after = node.next.get(0); node.removeFromGraph(); ifNode.next.add(after); after.prev.add(ifNode);