/** * Creates a new InstructionSequenceReplacer. * @param constants any constants referenced by the pattern * instructions and replacement instructions. * @param 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. * @param branchTargetFinder a branch target finder that has been * initialized to indicate branch targets * in the visited code. * @param codeAttributeEditor a code editor that can be used for * accumulating changes to the code. * @param extraInstructionVisitor an optional extra visitor for all deleted * load instructions. */ public InstructionSequencesReplacer(Constant[] constants, Instruction[][][] instructionSequences, BranchTargetFinder branchTargetFinder, CodeAttributeEditor codeAttributeEditor, InstructionVisitor extraInstructionVisitor) { super(createInstructionSequenceReplacers(constants, instructionSequences, branchTargetFinder, codeAttributeEditor, extraInstructionVisitor)); }
/** * Creates a new InstructionSequenceReplacer. * @param constants any constants referenced by the pattern * instructions and replacement instructions. * @param 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. * @param branchTargetFinder a branch target finder that has been * initialized to indicate branch targets * in the visited code. * @param codeAttributeEditor a code editor that can be used for * accumulating changes to the code. * @param extraInstructionVisitor an optional extra visitor for all deleted * load instructions. */ public InstructionSequencesReplacer(Constant[] constants, Instruction[][][] instructionSequences, BranchTargetFinder branchTargetFinder, CodeAttributeEditor codeAttributeEditor, InstructionVisitor extraInstructionVisitor) { super(createInstructionSequenceReplacers(constants, instructionSequences, branchTargetFinder, codeAttributeEditor, extraInstructionVisitor)); }
/** * Creates a new InstructionSequenceReplacer. * @param patternConstants any constants referenced by the pattern * instruction. * @param 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. * @param branchTargetFinder a branch target finder that has been * initialized to indicate branch targets * in the visited code. * @param codeAttributeEditor a code editor that can be used for * accumulating changes to the code. * @param extraInstructionVisitor an optional extra visitor for all deleted * load instructions. */ public InstructionSequencesReplacer(Constant[] patternConstants, Instruction[][][] instructionSequences, BranchTargetFinder branchTargetFinder, CodeAttributeEditor codeAttributeEditor, InstructionVisitor extraInstructionVisitor) { super(createInstructionSequenceReplacers(patternConstants, instructionSequences, branchTargetFinder, codeAttributeEditor, extraInstructionVisitor)); }
/** * Creates a new InstructionSequenceReplacer. * @param constants any constants referenced by the pattern * instructions and replacement instructions. * @param 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. * @param branchTargetFinder a branch target finder that has been * initialized to indicate branch targets * in the visited code. * @param codeAttributeEditor a code editor that can be used for * accumulating changes to the code. * @param extraInstructionVisitor an optional extra visitor for all deleted * load instructions. */ public InstructionSequencesReplacer(Constant[] constants, Instruction[][][] instructionSequences, BranchTargetFinder branchTargetFinder, CodeAttributeEditor codeAttributeEditor, InstructionVisitor extraInstructionVisitor) { super(createInstructionSequenceReplacers(constants, instructionSequences, branchTargetFinder, codeAttributeEditor, extraInstructionVisitor)); }