Skip to content

Commit 93fbbfe

Browse files
committed
Force UnsafeBufferHelper to be classloaded at startup
1 parent e36ba04 commit 93fbbfe

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/buffer_builder_leak/BufferBuilderMixin.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
import org.embeddedt.modernfix.render.UnsafeBufferHelper;
66
import org.spongepowered.asm.mixin.Mixin;
77
import org.spongepowered.asm.mixin.Shadow;
8+
import org.spongepowered.asm.mixin.injection.At;
9+
import org.spongepowered.asm.mixin.injection.Inject;
10+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
811

912
import java.nio.ByteBuffer;
1013

@@ -14,6 +17,14 @@ public class BufferBuilderMixin {
1417

1518
private static boolean leakReported = false;
1619

20+
/**
21+
* Ensure UnsafeBufferHelper is classloaded early, to avoid Forge's event transformer showing an error in the log.
22+
*/
23+
@Inject(method = "<clinit>", at = @At(value = "RETURN"))
24+
private static void initUnsafeBufferHelper(CallbackInfo ci) {
25+
UnsafeBufferHelper.init();
26+
}
27+
1728
@Override
1829
protected void finalize() throws Throwable {
1930
try {

common/src/main/java/org/embeddedt/modernfix/render/UnsafeBufferHelper.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ public class UnsafeBufferHelper {
3333
}
3434
}
3535

36+
public static void init() {
37+
38+
}
39+
3640
public static void free(ByteBuffer buf) {
3741
if(UNSAFE != null && ADDRESS >= 0) {
3842
// set the address to 0 to prevent double free

0 commit comments

Comments
 (0)