From 323f19a539ddea723d16846c068526e0565e29dd Mon Sep 17 00:00:00 2001 From: Kam Date: Mon, 11 Mar 2024 16:10:04 -0400 Subject: [PATCH] Remove Nashorn Object Size of Dependency --- src/main/java/noppes/npcs/scripted/NpcAPI.java | 8 ++------ .../noppes/npcs/util/SizeOfObjectUtil.java | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 src/main/java/noppes/npcs/util/SizeOfObjectUtil.java diff --git a/src/main/java/noppes/npcs/scripted/NpcAPI.java b/src/main/java/noppes/npcs/scripted/NpcAPI.java index 4fe5f5150..2f0c4f5f6 100644 --- a/src/main/java/noppes/npcs/scripted/NpcAPI.java +++ b/src/main/java/noppes/npcs/scripted/NpcAPI.java @@ -2,7 +2,6 @@ package noppes.npcs.scripted; import cpw.mods.fml.common.eventhandler.EventBus; import foxz.command.ScriptedCommand; -import jdk.nashorn.internal.ir.debug.ObjectSizeCalculator; import net.minecraft.block.Block; import net.minecraft.command.CommandHandler; import net.minecraft.entity.Entity; @@ -59,10 +58,7 @@ import noppes.npcs.scripted.entity.*; import noppes.npcs.scripted.gui.ScriptGui; import noppes.npcs.scripted.item.*; import noppes.npcs.scripted.overlay.ScriptOverlay; -import noppes.npcs.util.CacheHashMap; -import noppes.npcs.util.JsonException; -import noppes.npcs.util.LRUHashMap; -import noppes.npcs.util.NBTJsonUtil; +import noppes.npcs.util.*; import java.io.File; import java.util.*; @@ -107,7 +103,7 @@ public class NpcAPI extends AbstractNpcAPI { } public long sizeOfObject(Object obj) { - return ObjectSizeCalculator.getObjectSize(obj); + return SizeOfObjectUtil.sizeOfObject(obj); } public void stopServer() { diff --git a/src/main/java/noppes/npcs/util/SizeOfObjectUtil.java b/src/main/java/noppes/npcs/util/SizeOfObjectUtil.java new file mode 100644 index 000000000..6d87f6fc8 --- /dev/null +++ b/src/main/java/noppes/npcs/util/SizeOfObjectUtil.java @@ -0,0 +1,18 @@ +package noppes.npcs.util; + +import java.lang.instrument.Instrumentation; + +public class SizeOfObjectUtil { + private static volatile Instrumentation instrumentation; + + public static void initializeInstrumentation(Instrumentation inst) { + instrumentation = inst; + } + + public static long sizeOfObject(Object obj) { + if (instrumentation == null) { + throw new IllegalStateException("Instrumentation is not initialized"); + } + return instrumentation.getObjectSize(obj); + } +}