Skip to content

Commit 8d36e8a

Browse files
committed
avoid unnecessary class loading in asm
1 parent bdcb3f1 commit 8d36e8a

File tree

1 file changed

+5
-11
lines changed

1 file changed

+5
-11
lines changed

src/main/java/mega/fluidlogged/internal/core/FluidLogRendererInjector.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,10 @@
3131
import mega.fluidlogged.Tags;
3232
import org.jetbrains.annotations.NotNull;
3333
import org.objectweb.asm.Opcodes;
34-
import org.objectweb.asm.Type;
3534
import org.objectweb.asm.tree.InsnNode;
3635
import org.objectweb.asm.tree.MethodInsnNode;
3736
import org.objectweb.asm.tree.VarInsnNode;
3837

39-
import net.minecraft.client.renderer.RenderBlocks;
40-
41-
import java.lang.reflect.Method;
4238

4339
/**
4440
* Waterlogging renderer hook
@@ -109,13 +105,11 @@ public boolean transformClass(@NotNull String className, @NotNull ClassNodeHandl
109105
iter.add(new VarInsnNode(Opcodes.ILOAD, 21));
110106
iter.add(new VarInsnNode(Opcodes.ILOAD, 22));
111107
iter.add(new VarInsnNode(Opcodes.ILOAD, 17));
112-
Method target;
113-
try {
114-
target = ASMHooks.class.getDeclaredMethod("drawFluidLogged", RenderBlocks.class, int.class, int.class, int.class, int.class);
115-
} catch (NoSuchMethodException e) {
116-
throw new RuntimeException(e);
117-
}
118-
iter.add(new MethodInsnNode(Opcodes.INVOKESTATIC, Type.getInternalName(target.getDeclaringClass()), target.getName(), Type.getMethodDescriptor(target), false));
108+
iter.add(new MethodInsnNode(Opcodes.INVOKESTATIC,
109+
Tags.ROOT_PKG.replace('.', '/') + "/internal/core/ASMHooks",
110+
"drawFluidLogged",
111+
"(Lnet/minecraft/client/renderer/RenderBlocks;IIII)I",
112+
false));
119113
iter.add(new InsnNode(Opcodes.DUP));
120114
iter.add(new InsnNode(Opcodes.ICONST_1));
121115
iter.add(new InsnNode(Opcodes.IAND));

0 commit comments

Comments
 (0)