From 8ce41242ed921c82b6fc8aee010e64faa8883e32 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Thu, 23 Nov 2023 09:58:03 -0500 Subject: [PATCH 1/3] Update generic --- .../mixin/perf/forge_registry_lambda/RegistryObjectMixin.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/forge_registry_lambda/RegistryObjectMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/forge_registry_lambda/RegistryObjectMixin.java index 6c452b12..025aacbc 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/forge_registry_lambda/RegistryObjectMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/forge_registry_lambda/RegistryObjectMixin.java @@ -1,7 +1,6 @@ package org.embeddedt.modernfix.forge.mixin.perf.forge_registry_lambda; import net.minecraft.resources.ResourceLocation; -import net.minecraftforge.registries.IForgeRegistryEntry; import net.minecraftforge.registries.RegistryObject; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Final; @@ -10,7 +9,7 @@ import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; @Mixin(value = RegistryObject.class, remap = false) -public class RegistryObjectMixin> { +public class RegistryObjectMixin { @Shadow private @Nullable T value; @Shadow @Final private ResourceLocation name; From 61ce2e7117d7465b3a72494101984682a110e24e Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Thu, 23 Nov 2023 09:58:20 -0500 Subject: [PATCH 2/3] Mark buffer builder fix as client only --- .../mixin/bugfix/buffer_builder_leak/BufferBuilderMixin.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/buffer_builder_leak/BufferBuilderMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/buffer_builder_leak/BufferBuilderMixin.java index 98237da3..c78e6c5a 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/buffer_builder_leak/BufferBuilderMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/buffer_builder_leak/BufferBuilderMixin.java @@ -2,6 +2,7 @@ package org.embeddedt.modernfix.common.mixin.bugfix.buffer_builder_leak; import com.mojang.blaze3d.vertex.BufferBuilder; import org.embeddedt.modernfix.ModernFix; +import org.embeddedt.modernfix.annotation.ClientOnlyMixin; import org.embeddedt.modernfix.render.UnsafeBufferHelper; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -12,6 +13,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import java.nio.ByteBuffer; @Mixin(BufferBuilder.class) +@ClientOnlyMixin public class BufferBuilderMixin { @Shadow private ByteBuffer buffer; From 2946b3a7b5164b8b81b8bcf92668eddbcf260dd0 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Thu, 23 Nov 2023 10:11:45 -0500 Subject: [PATCH 3/3] Handle path arrays with empty components correctly Related: #304 --- .../embeddedt/modernfix/resources/CachedResourcePath.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/common/src/main/java/org/embeddedt/modernfix/resources/CachedResourcePath.java b/common/src/main/java/org/embeddedt/modernfix/resources/CachedResourcePath.java index 79a04254..f82f0521 100644 --- a/common/src/main/java/org/embeddedt/modernfix/resources/CachedResourcePath.java +++ b/common/src/main/java/org/embeddedt/modernfix/resources/CachedResourcePath.java @@ -61,6 +61,13 @@ public class CachedResourcePath { * DOES NOT INTERN! */ public CachedResourcePath(String[] pathComponents) { + for(String s : pathComponents) { + if(s.length() == 0) { + // reconstruct the whole array skipping blanks. inefficient, but should not be the common case + pathComponents = Arrays.stream(pathComponents).filter(comp -> comp.length() > 0).toArray(String[]::new); + break; + } + } this.pathComponents = pathComponents; }