Global Modification Patcher
基本信息
pl.asie.foamfix.bugfixmod.coremod.patchers.GlobalModificationPatcher ——
标记接口(interface,非抽象类),声明整张指令表的修改钩子。
public interface GlobalModificationPatcher {
void modifyInsnsGlobal(InsnList instructions);
}
适用场景
需要在看到整个方法体后决策的场景 —— 例如删除整个方法、 或需要前后指令共同分析才能安全改写。
与其它两种模式的互斥关系
AbstractPatcher.patchMethodNode 的分派顺序:
instanceof GlobalModificationPatcher→ 本接口(整表一次)instanceof ModificationPatcher→ 逐条- 否则 →
buildNewInsns逐条插入
先判本接口,因此同时实现前两者时以本接口为准。
相关条目
源码
src/main/java/pl/asie/foamfix/bugfixmod/coremod/patchers/GlobalModificationPatcher.java