public class InstructionSequencesReplacer extends MultiInstructionVisitor implements InstructionVisitor
InstructionVisitor
replaces multiple instruction sequences at once.
The replacement sequences are optional, defaulting to the empty sequence, to delete the matched pattern sequences.
InstructionSequenceReplacer
Constructor and Description |
---|
InstructionSequencesReplacer(Constant[] constants,
Instruction[][][] instructionSequences,
BranchTargetFinder branchTargetFinder,
CodeAttributeEditor codeAttributeEditor)
Creates a new InstructionSequencesReplacer.
|
InstructionSequencesReplacer(Constant[] constants,
Instruction[][][] instructionSequences,
BranchTargetFinder branchTargetFinder,
CodeAttributeEditor codeAttributeEditor,
InstructionVisitor extraInstructionVisitor)
Creates a new InstructionSequenceReplacer.
|
addInstructionVisitor, visitBranchInstruction, visitConstantInstruction, visitLookUpSwitchInstruction, visitSimpleInstruction, visitTableSwitchInstruction, visitVariableInstruction
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
visitAnyInstruction, visitAnySwitchInstruction, visitBranchInstruction, visitConstantInstruction, visitLookUpSwitchInstruction, visitSimpleInstruction, visitTableSwitchInstruction, visitVariableInstruction
public InstructionSequencesReplacer(Constant[] constants, Instruction[][][] instructionSequences, BranchTargetFinder branchTargetFinder, CodeAttributeEditor codeAttributeEditor)
constants
- any constants referenced by the pattern instructions and replacement
instructions.instructionSequences
- the instruction sequences to be replaced, with subsequently the
sequence pair index, the patten/replacement index (0 or 1), and the instruction index in
the sequence.branchTargetFinder
- a branch target finder that has been initialized to indicate branch
targets in the visited code.codeAttributeEditor
- a code editor that can be used for accumulating changes to the code.public InstructionSequencesReplacer(Constant[] constants, Instruction[][][] instructionSequences, BranchTargetFinder branchTargetFinder, CodeAttributeEditor codeAttributeEditor, InstructionVisitor extraInstructionVisitor)
constants
- any constants referenced by the pattern instructions and replacement
instructions.instructionSequences
- the instruction sequences to be replaced, with subsequently the
sequence pair index, the patten/replacement index (0 or 1), and the instruction index in
the sequence.branchTargetFinder
- a branch target finder that has been initialized to indicate branch
targets in the visited code.codeAttributeEditor
- a code editor that can be used for accumulating changes to the code.extraInstructionVisitor
- an optional extra visitor for all deleted load instructions.