From 0dc7f52a50a3b4c5ea34d3665d9bc0ac44f16b2b Mon Sep 17 00:00:00 2001 From: TheMode Date: Tue, 3 May 2022 18:55:41 +0200 Subject: [PATCH] Use an identity map to store Snapshotable Signed-off-by: TheMode --- .../net/minestom/server/snapshot/SnapshotUpdaterImpl.java | 7 ++----- .../java/net/minestom/server/snapshot/Snapshotable.java | 2 ++ 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minestom/server/snapshot/SnapshotUpdaterImpl.java b/src/main/java/net/minestom/server/snapshot/SnapshotUpdaterImpl.java index 39c732f8c..ed3758841 100644 --- a/src/main/java/net/minestom/server/snapshot/SnapshotUpdaterImpl.java +++ b/src/main/java/net/minestom/server/snapshot/SnapshotUpdaterImpl.java @@ -2,16 +2,13 @@ package net.minestom.server.snapshot; -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import org.jetbrains.annotations.NotNull; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.concurrent.atomic.AtomicReference; final class SnapshotUpdaterImpl implements SnapshotUpdater { - private final Object2ObjectOpenHashMap> referenceMap = new Object2ObjectOpenHashMap<>(); + private final Map> referenceMap = new IdentityHashMap<>(); private List queue = new ArrayList<>(); static @NotNull T update(@NotNull Snapshotable snapshotable) { diff --git a/src/main/java/net/minestom/server/snapshot/Snapshotable.java b/src/main/java/net/minestom/server/snapshot/Snapshotable.java index 4174eadef..14cc87f99 100644 --- a/src/main/java/net/minestom/server/snapshot/Snapshotable.java +++ b/src/main/java/net/minestom/server/snapshot/Snapshotable.java @@ -5,6 +5,8 @@ import org.jetbrains.annotations.NotNull; /** * Represents an object which is regularly saved into a snapshot. + *

+ * Implementations must be identity-based. */ @ApiStatus.Experimental public interface Snapshotable {