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, visitVariableInstructionclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitAnyInstruction, visitAnySwitchInstruction, visitBranchInstruction, visitConstantInstruction, visitLookUpSwitchInstruction, visitSimpleInstruction, visitTableSwitchInstruction, visitVariableInstructionpublic 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.