private Instruction previous(final Instruction i) { Instruction p = i.getPrevious(); while (p != null && _removed.contains(p)) { p = p.getPrevious(); } return p; } }
private Instruction previous(final Instruction i) { Instruction p = i.getPrevious(); while (p != null && _removed.contains(p)) { p = p.getPrevious(); } return p; } }
private Instruction previous(final Instruction i) { Instruction p = i.getPrevious(); while (p != null && _removed.contains(p)) { p = p.getPrevious(); } return p; } }
@Override protected void afterRemove(final int index, final Instruction item) { final Instruction current = item.getNext(); final Instruction previous = item.getPrevious(); if (previous != null) { previous.setNext(current); } if (current != null) { current.setPrevious(previous); } item.setPrevious(null); item.setNext(null); }
private void removeGetClassCallsForInvokeDynamic() { for (final Instruction i : _instructions) { if (i.getOpCode() != OpCode.INVOKEDYNAMIC) { continue; } final Instruction p1 = i.getPrevious(); if (p1 == null || p1.getOpCode() != OpCode.POP) { continue; } final Instruction p2 = p1.getPrevious(); if (p2 == null || !isGetClassInvocation(p2)) { continue; } final Instruction p3 = p2.getPrevious(); if (p3 == null || p3.getOpCode() != OpCode.DUP) { continue; } p1.setOpCode(OpCode.NOP); p1.setOperand(null); p2.setOpCode(OpCode.NOP); p2.setOperand(null); p3.setOpCode(OpCode.NOP); p3.setOperand(null); } }
private void removeGetClassCallsForInvokeDynamic() { for (final Instruction i : _instructions) { if (i.getOpCode() != OpCode.INVOKEDYNAMIC) { continue; } final Instruction p1 = i.getPrevious(); if (p1 == null || p1.getOpCode() != OpCode.POP) { continue; } final Instruction p2 = p1.getPrevious(); if (p2 == null || !isGetClassInvocation(p2)) { continue; } final Instruction p3 = p2.getPrevious(); if (p3 == null || p3.getOpCode() != OpCode.DUP) { continue; } p1.setOpCode(OpCode.NOP); p1.setOperand(null); p2.setOpCode(OpCode.NOP); p2.setOperand(null); p3.setOpCode(OpCode.NOP); p3.setOperand(null); } }
private void removeGetClassCallsForInvokeDynamic() { for (final Instruction i : _instructions) { if (i.getOpCode() != OpCode.INVOKEDYNAMIC) { continue; } final Instruction p1 = i.getPrevious(); if (p1 == null || p1.getOpCode() != OpCode.POP) { continue; } final Instruction p2 = p1.getPrevious(); if (p2 == null || !isGetClassInvocation(p2)) { continue; } final Instruction p3 = p2.getPrevious(); if (p3 == null || p3.getOpCode() != OpCode.DUP) { continue; } p1.setOpCode(OpCode.NOP); p1.setOperand(null); p2.setOpCode(OpCode.NOP); p2.setOperand(null); p3.setOpCode(OpCode.NOP); p3.setOperand(null); } }
@Override protected void afterRemove(final int index, final Instruction item) { final Instruction current = item.getNext(); final Instruction previous = item.getPrevious(); if (previous != null) { previous.setNext(current); } if (current != null) { current.setPrevious(previous); } item.setPrevious(null); item.setNext(null); }
@Override protected void afterRemove(final int index, final Instruction item) { final Instruction current = item.getNext(); final Instruction previous = item.getPrevious(); if (previous != null) { previous.setNext(current); } if (current != null) { current.setPrevious(previous); } item.setPrevious(null); item.setNext(null); }
@Override protected void beforeSet(final int index, final Instruction item) { final Instruction current = get(index); item.setPrevious(current.getPrevious()); item.setNext(current.getNext()); current.setPrevious(null); current.setNext(null); }
@Override protected void beforeSet(final int index, final Instruction item) { final Instruction current = get(index); item.setPrevious(current.getPrevious()); item.setNext(current.getNext()); current.setPrevious(null); current.setNext(null); }
@Override protected void beforeSet(final int index, final Instruction item) { final Instruction current = get(index); item.setPrevious(current.getPrevious()); item.setNext(current.getNext()); current.setPrevious(null); current.setNext(null); }
final ExceptionHandler firstSibling = first(siblings); final InstructionBlock firstHandler = firstSibling.getHandlerBlock(); final Instruction desiredEndTry = firstHandler.getFirstInstruction().getPrevious();
new InstructionBlock( tryBlock.getFirstInstruction(), otherHandler.getFirstInstruction().getPrevious() ), handlerBlock
new InstructionBlock( tryBlock.getFirstInstruction(), otherHandler.getFirstInstruction().getPrevious() ), handlerBlock
new InstructionBlock( tryBlock.getFirstInstruction(), otherHandler.getFirstInstruction().getPrevious() ), handlerBlock
new InstructionBlock( tryBlock.getFirstInstruction(), otherHandler.getFirstInstruction().getPrevious() ), handlerBlock
new InstructionBlock( tryBlock.getFirstInstruction(), otherHandler.getFirstInstruction().getPrevious() ), handlerBlock
new InstructionBlock( _instructions.atOffset(entry.getStartOffset()), afterTry != null ? afterTry.getPrevious() : last(_instructions) ), new InstructionBlock( new InstructionBlock( _instructions.atOffset(entry.getStartOffset()), afterTry != null ? afterTry.getPrevious() : last(_instructions) ), new InstructionBlock(
new InstructionBlock( _instructions.atOffset(entry.getStartOffset()), afterTry != null ? afterTry.getPrevious() : last(_instructions) ), new InstructionBlock( new InstructionBlock( _instructions.atOffset(entry.getStartOffset()), afterTry != null ? afterTry.getPrevious() : last(_instructions) ), new InstructionBlock(