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