Skip to content

Commit 3937569

Browse files
committed
Merge remote-tracking branch 'origin/master-26-lts' into master-26
2 parents 74b558b + a85ed61 commit 3937569

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

loader-neoforge/src/main/java/org/cyclops/structuredcrafting/craft/provider/WorldItemStackProviderNeoForge.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,19 @@
1212
import net.neoforged.neoforge.transfer.item.ItemResource;
1313
import org.cyclops.cyclopscore.helper.IModHelpersNeoForge;
1414

15+
import com.google.common.collect.MapMaker;
16+
1517
import java.util.Map;
16-
import java.util.WeakHashMap;
1718

1819
/**
1920
* World that can provide an itemstack.
2021
* @author rubensworks
2122
*/
2223
public class WorldItemStackProviderNeoForge extends WorldItemStackProviderBase {
2324

24-
private static final Map<ServerLevel, FakePlayer> FAKE_PLAYERS = new WeakHashMap<ServerLevel, FakePlayer>();
25+
// Weak keys AND values: the FakePlayer value holds a reference to its ServerLevel key,
26+
// so a WeakHashMap (weak keys only) would keep the key alive forever and leak.
27+
private static final Map<ServerLevel, FakePlayer> FAKE_PLAYERS = new MapMaker().weakKeys().weakValues().makeMap();
2528

2629
public static FakePlayer getFakePlayer(ServerLevel world) {
2730
FakePlayer fakePlayer = FAKE_PLAYERS.get(world);

0 commit comments

Comments
 (0)