From 7c16d87eb20e31ad19068815b7c66e06dc47f9f5 Mon Sep 17 00:00:00 2001 From: IThundxr Date: Sun, 15 Mar 2026 14:16:19 -0400 Subject: [PATCH] Use weakKeys for LevelAttached to prevent leaking levels --- .../java/dev/engine_room/flywheel/lib/util/LevelAttached.java | 1 + 1 file changed, 1 insertion(+) diff --git a/common/src/lib/java/dev/engine_room/flywheel/lib/util/LevelAttached.java b/common/src/lib/java/dev/engine_room/flywheel/lib/util/LevelAttached.java index 7ab56e1a5..b7e96798c 100644 --- a/common/src/lib/java/dev/engine_room/flywheel/lib/util/LevelAttached.java +++ b/common/src/lib/java/dev/engine_room/flywheel/lib/util/LevelAttached.java @@ -24,6 +24,7 @@ public LevelAttached(Function factory, Consumer finalizer) ALL.add(thisRef); cache = CacheBuilder.newBuilder() + .weakKeys() // This prevents Levels from being leaked if invalidateLevel isn't called for them, usually in level wrapper cases .removalListener(n -> finalizer.accept(n.getValue())) .build(new CacheLoader<>() { @Override