From e1ca29042436a0f971d8df46ac513631d5d6c338 Mon Sep 17 00:00:00 2001 From: Skylot Date: Thu, 21 Feb 2019 15:29:38 +0300 Subject: [PATCH] fix: avoid ConcurrentModificationException in EliminatePhiNodes pass --- .../java/jadx/core/dex/visitors/ssa/EliminatePhiNodes.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/EliminatePhiNodes.java b/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/EliminatePhiNodes.java index 3145e6d0b..a3819836c 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/EliminatePhiNodes.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/EliminatePhiNodes.java @@ -1,5 +1,6 @@ package jadx.core.dex.visitors.ssa; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -111,7 +112,7 @@ public class EliminatePhiNodes extends AbstractVisitor { if (assignParentInsn != null) { assignParentInsn.setResult(newAssignArg); } - for (RegisterArg useArg : oldSVar.getUseList()) { + for (RegisterArg useArg : new ArrayList<>(oldSVar.getUseList())) { RegisterArg newUseArg = useArg.duplicate(newRegNum, newSVar); InsnNode parentInsn = useArg.getParentInsn(); if (parentInsn != null) {