Global Modification Patcher

基本信息

pl.asie.foamfix.bugfixmod.coremod.patchers.GlobalModificationPatcher —— 标记接口(interface,非抽象类),声明整张指令表的修改钩子。

public interface GlobalModificationPatcher {
    void modifyInsnsGlobal(InsnList instructions);
}

适用场景

需要在看到整个方法体后决策的场景 —— 例如删除整个方法、 或需要前后指令共同分析才能安全改写。

与其它两种模式的互斥关系

AbstractPatcher.patchMethodNode 的分派顺序:

  1. instanceof GlobalModificationPatcher → 本接口(整表一次)
  2. instanceof ModificationPatcher → 逐条
  3. 否则 → buildNewInsns 逐条插入

先判本接口,因此同时实现前两者时以本接口为准。

相关条目

源码

  • src/main/java/pl/asie/foamfix/bugfixmod/coremod/patchers/GlobalModificationPatcher.java