ASM Utils

基本信息

net.glease.tc4tweak.asm.ASMUtils —— 写字节码的辅助方法集。

⚠️ 包私有 final class(无 public),仅 net.glease.tc4tweak.asm 包内可用。 不是对外 API。

方法

方法 行 说明
writeOverwrite(String targetClass, String targetName, MethodVisitor mv, String clazz, String desc) 52 生成委托到另一类静态方法的新方法
writeRedirect(MethodVisitor mv, String targetClass, String targetName, String clazz, String origName, String desc, Type... append) 90 写一条 INVOKESTATIC 把调用重定向到别的类

参数含义(源码 javadoc)

targetClass —— 委托目标的内部名; clazz —— owner 类的内部名,NULL 表示静态方法; append —— 追加的参数 Type。

writeRedirect 的前提注释:This assumes the stack is properly setup ——调用前操作数栈须已就绪,故签名为 void(无返回值换栈平衡)。

HodgePodge 兼容

第 128 行注释提到 a boolean field name in HodgePodge LoadingConfig class —— 存在面向 HodgePodge 的分支,由 Loading Plugin 的 hodgepodge 标志驱动(检测 coremodList 中含 hodgepodge)。

相关条目

源码

  • src/main/java/net/glease/tc4tweak/asm/ASMUtils.java