From c09c4ccf68f3a2f5ba746990fbed9aaf37e6fda2 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Fri, 28 Apr 2023 21:33:57 -0400 Subject: [PATCH] Optimize clear() --- .../ForgeRegistryMixin.java | 3 --- .../modernfix/registry/FastForgeRegistry.java | 15 ++++++++------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/embeddedt/modernfix/mixin/perf/fast_registry_validation/ForgeRegistryMixin.java b/src/main/java/org/embeddedt/modernfix/mixin/perf/fast_registry_validation/ForgeRegistryMixin.java index c00a2c85..09b7daf7 100644 --- a/src/main/java/org/embeddedt/modernfix/mixin/perf/fast_registry_validation/ForgeRegistryMixin.java +++ b/src/main/java/org/embeddedt/modernfix/mixin/perf/fast_registry_validation/ForgeRegistryMixin.java @@ -98,7 +98,6 @@ public class ForgeRegistryMixin> { this.fastRegistry.optimize(); } - /* @Redirect(method = "sync", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/BiMap;clear()V")) private void clearBiMap(BiMap map) { if(map == this.owners) { @@ -108,6 +107,4 @@ public class ForgeRegistryMixin> { } else map.clear(); } - - */ } diff --git a/src/main/java/org/embeddedt/modernfix/registry/FastForgeRegistry.java b/src/main/java/org/embeddedt/modernfix/registry/FastForgeRegistry.java index ecee2a18..673cec5e 100644 --- a/src/main/java/org/embeddedt/modernfix/registry/FastForgeRegistry.java +++ b/src/main/java/org/embeddedt/modernfix/registry/FastForgeRegistry.java @@ -18,14 +18,14 @@ import java.util.function.Function; import java.util.stream.Collectors; public class FastForgeRegistry> { - private BiMap ids; - private DataFieldBiMap names; - private DataFieldBiMap> keys; - private DataFieldBiMap owners; - private ResourceKey> registryKey; + private final BiMap ids; + private final DataFieldBiMap names; + private final DataFieldBiMap> keys; + private final DataFieldBiMap owners; + private final ResourceKey> registryKey; - private ObjectArrayList valuesById; - private Object2ObjectOpenHashMap infoByValue; + private final ObjectArrayList valuesById; + private final Object2ObjectOpenHashMap infoByValue; private void storeId(V value, int id) { RegistryValueData pair = infoByValue.computeIfAbsent(value, k -> new RegistryValueData()); @@ -58,6 +58,7 @@ public class FastForgeRegistry> { } this.names.clearUnsafe(); this.keys.clearUnsafe(); + this.owners.clearUnsafe(); } public FastForgeRegistry(ResourceKey> registryKey) {