From 226e4a373b542bfaf7a0e658dd5ccda0dd327922 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Fri, 29 Mar 2024 10:49:24 -0400 Subject: [PATCH] Reduce chances of CME when iterating class info cache --- .../java/org/embeddedt/modernfix/util/ClassInfoManager.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/util/ClassInfoManager.java b/common/src/main/java/org/embeddedt/modernfix/util/ClassInfoManager.java index a633d954..e878bb5f 100644 --- a/common/src/main/java/org/embeddedt/modernfix/util/ClassInfoManager.java +++ b/common/src/main/java/org/embeddedt/modernfix/util/ClassInfoManager.java @@ -70,7 +70,8 @@ public class ClassInfoManager { MixinEnvironment.getDefaultEnvironment().audit(); try { ClassNode emptyNode = new ClassNode(); - classInfoCache.entrySet().removeIf(entry -> { + List> entries = new ArrayList<>(classInfoCache.entrySet()); + entries.stream().filter(entry -> { if(entry.getKey().equals("java/lang/Object")) return false; ClassInfo mixinClz = entry.getValue(); @@ -88,7 +89,7 @@ public class ClassInfoManager { e.printStackTrace(); } return true; - }); + }).forEach(entry -> classInfoCache.remove(entry.getKey())); } catch (RuntimeException e) { e.printStackTrace(); }