From 23f088105ed0124a971e1fc3613f470d62d9ad6f Mon Sep 17 00:00:00 2001 From: Jan S Date: Thu, 24 Dec 2020 13:42:52 +0100 Subject: [PATCH] fix(gui): synchronized conditional usageList remove method added (PR #1065) --- jadx-gui/src/main/java/jadx/gui/utils/CodeUsageInfo.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/jadx-gui/src/main/java/jadx/gui/utils/CodeUsageInfo.java b/jadx-gui/src/main/java/jadx/gui/utils/CodeUsageInfo.java index c9ca31e7f..d4963cf90 100644 --- a/jadx-gui/src/main/java/jadx/gui/utils/CodeUsageInfo.java +++ b/jadx-gui/src/main/java/jadx/gui/utils/CodeUsageInfo.java @@ -5,6 +5,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Predicate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,6 +30,10 @@ public class CodeUsageInfo { public synchronized void addUsage(CodeNode codeNode) { usageList.add(codeNode); } + + public synchronized void removeUsageIf(Predicate filter) { + usageList.removeIf(filter); + } } private final JNodeCache nodeCache; @@ -76,7 +81,7 @@ public class CodeUsageInfo { if (e.getKey().getJavaNode().getTopParentClass().equals(cls)) { return true; } - e.getValue().getUsageList().removeIf(node -> node.getJavaNode().getTopParentClass().equals(cls)); + e.getValue().removeUsageIf(node -> node.getJavaNode().getTopParentClass().equals(cls)); return false; }); }