diff --git a/src/org/jetbrains/java/decompiler/modules/decompiler/decompose/FastExtendedPostdominanceHelper.java b/src/org/jetbrains/java/decompiler/modules/decompiler/decompose/FastExtendedPostdominanceHelper.java index f029016..d7eeb56 100644 --- a/src/org/jetbrains/java/decompiler/modules/decompiler/decompose/FastExtendedPostdominanceHelper.java +++ b/src/org/jetbrains/java/decompiler/modules/decompiler/decompose/FastExtendedPostdominanceHelper.java @@ -89,6 +89,7 @@ public class FastExtendedPostdominanceHelper { stackPath.add(factory.spawnEmptySet()); Set setVisited = new HashSet(); + Set setStack = new HashSet(); while (!stack.isEmpty()) { @@ -122,9 +123,15 @@ public class FastExtendedPostdominanceHelper { } for (StatEdge edge : stat.getSuccessorEdges(StatEdge.TYPE_REGULAR)) { - if (!setVisited.contains(edge.getDestination())) { - stack.add(edge.getDestination()); + + Statement edge_destination = edge.getDestination(); + + if(!setVisited.contains(edge_destination) && !setStack.contains(edge_destination)) { + + stack.add(edge_destination); stackPath.add(path.getCopy()); + + setStack.add(edge_destination); } } }