From 0056a57f30956b78c3ea0f670edb25d642243937 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Wed, 13 Dec 2023 14:18:53 -0500 Subject: [PATCH] Optimize RegistryDelegate#hashCode() --- .../RegistryDelegateMixin.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/forge_registry_lambda/RegistryDelegateMixin.java diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/forge_registry_lambda/RegistryDelegateMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/forge_registry_lambda/RegistryDelegateMixin.java new file mode 100644 index 00000000..918b5a30 --- /dev/null +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/forge_registry_lambda/RegistryDelegateMixin.java @@ -0,0 +1,25 @@ +package org.embeddedt.modernfix.forge.mixin.perf.forge_registry_lambda; + +import net.minecraft.resources.ResourceLocation; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(targets = {"net/minecraftforge/registries/RegistryDelegate"}) +public class RegistryDelegateMixin { + @Shadow private ResourceLocation name; + + /** + * @author embeddedt + * @reason avoid allocation in hashCode() + */ + @Overwrite(remap = false) + public int hashCode() { + ResourceLocation name = this.name; + if(name != null) { + return name.hashCode(); + } else { + return 0; + } + } +}