From eac9edb13af6d352230c6360df9ca4a1cdb7b0d8 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Thu, 3 Aug 2023 16:29:13 -0400 Subject: [PATCH] Fix Forge overriding ResourceKey.equals() with a slower implementation --- .../ResourceKeyMixin.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/resource_key_equality/ResourceKeyMixin.java diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/resource_key_equality/ResourceKeyMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/resource_key_equality/ResourceKeyMixin.java new file mode 100644 index 00000000..4fdf86b7 --- /dev/null +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/resource_key_equality/ResourceKeyMixin.java @@ -0,0 +1,18 @@ +package org.embeddedt.modernfix.forge.mixin.perf.resource_key_equality; + +import net.minecraft.resources.ResourceKey; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +@Mixin(ResourceKey.class) +public class ResourceKeyMixin { + /** + * @author embeddedt + * @reason ResourceKeys are interned, so there is no reason to waste time doing any deeper comparison. This override + * is patched in by Forge, it doesn't exist in vanilla + */ + @Overwrite(remap = false) + public boolean equals(Object o) { + return o == this; + } +}