public void visitBranchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, BranchInstruction branchInstruction) { // Is it a necessary subroutine invocation? if (branchInstruction.canonicalOpcode() == InstructionConstants.OP_JSR) { int nextOffset = offset + branchInstruction.length(offset); if (!instructionUsageMarker.isInstructionNecessary(nextOffset)) { replaceByInfiniteLoop(clazz, nextOffset); if (DEBUG) System.out.println(" Adding infinite loop at ["+nextOffset+"] after "+branchInstruction.toString(offset)); } } } }
public void visitBranchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, BranchInstruction branchInstruction) { // Is it a necessary subroutine invocation? if (branchInstruction.canonicalOpcode() == InstructionConstants.OP_JSR) { int nextOffset = offset + branchInstruction.length(offset); if (!instructionUsageMarker.isInstructionNecessary(nextOffset)) { replaceByInfiniteLoop(clazz, nextOffset); if (DEBUG) System.out.println(" Adding infinite loop at ["+nextOffset+"] after "+branchInstruction.toString(offset)); } } } }
public void visitBranchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, BranchInstruction branchInstruction) { // Is it a necessary subroutine invocation? if (branchInstruction.canonicalOpcode() == InstructionConstants.OP_JSR) { int nextOffset = offset + branchInstruction.length(offset); if (!instructionUsageMarker.isInstructionNecessary(nextOffset)) { replaceByInfiniteLoop(clazz, nextOffset); if (DEBUG) System.out.println(" Adding infinite loop at ["+nextOffset+"] after "+branchInstruction.toString(offset)); } } } }