@Test public void shouldMatchIncrementsToStoredLocalVariable() { final Slot<Integer> slot = Slot.create(Integer.class); this.context.store(slot.write(), 42); final IincInsnNode node = new IincInsnNode(42, 1); assertTrue(incrementsVariable(slot.read()).test(this.context,node)); }
@Override public void accept(final MethodVisitor methodVisitor) { methodVisitor.visitIincInsn(var, incr); acceptAnnotations(methodVisitor); }
@Override public AbstractInsnNode clone(final Map<LabelNode, LabelNode> labels) { return new IincInsnNode(var, incr).cloneAnnotations(this); } }
@Test public void shouldNotMatchIncrementsToDifferentLocalVariable() { final Slot<Integer> slot = Slot.create(Integer.class); this.context.store(slot.write(), 42); final IincInsnNode node = new IincInsnNode(42 + 1, 1); assertFalse(incrementsVariable(slot.read()).test(this.context,node)); }
@Override public AbstractInsnNode clone(final Map<LabelNode, LabelNode> clonedLabels) { return new IincInsnNode(var, incr).cloneAnnotations(this); } }
@Override public void accept(final MethodVisitor mv) { mv.visitIincInsn(var, incr); acceptAnnotations(mv); }
@Override public void visitIincInsn(int var, int increment) { if (fieldAccessNode != null) { instructionsAfterFieldAccess.add(new IincInsnNode(var, increment)); } super.visitIincInsn(var, increment); }
public CodeBlock iinc(final int varIndex, final int increment) { instructionList.add(new IincInsnNode(varIndex, increment)); return this; }
public CodeBlock visitIincInsn(final int varIndex, final int increment) { instructionList.add(new IincInsnNode(varIndex, increment)); return this; }
public CodeBlock iinc(final int varIndex, final int increment) { instructionList.add(new IincInsnNode(varIndex, increment)); return this; }
public CodeBlock visitIincInsn(final int varIndex, final int increment) { instructionList.add(new IincInsnNode(varIndex, increment)); return this; }
@Override public void visitIincInsn(final int var, final int increment) { instructions.add(new IincInsnNode(var, increment)); }
@Override public void visitIincInsn(final int var, final int increment) { instructions.add(new IincInsnNode(var, increment)); }
@Override public void visitIincInsn(int arg0, int arg1) { super.visitIincInsn(arg0, arg1); appendToBacklog(new IincInsnNode(arg0, arg1)); }
@Override public void visitIincInsn(int arg0, int arg1) { super.visitIincInsn(arg0, arg1); appendToBacklog(new IincInsnNode(arg0, arg1)); }
+ localVar.desc + " at index " + localVar.index); InsnList list = new InsnList(); list.add(new IincInsnNode(localVar.index, node.incr)); replacements.put(localVar.name, list);
@Override public boolean apply(NodeIt it) { if(it.matches(ILOAD, ICONST, IADD, ISTORE)) { VarInsnNode load = it.get(0); int increment = Instructions.getInteger(it.get(1)); VarInsnNode store = it.get(3); if(load.var == store.var) { it.remove(4); if(increment != 0) { it.insert(new IincInsnNode(load.var, increment)); } return true; } } return false; } }
if (frame.getStack(frame.getStackSize() - 1) != BooleanValueInterpreter.BOOLEAN_VALUE) { mutation = new InsnList(); mutation.add(new IincInsnNode(node.var, 1)); mutation.add(new VarInsnNode(node.getOpcode(), node.var)); if (!mn.localVariables.isEmpty()) mutation.add(new IincInsnNode(node.var, -1)); mutation.add(new VarInsnNode(node.getOpcode(), node.var)); if (!mn.localVariables.isEmpty())
IincInsnNode donorIncInsn = (IincInsnNode) donorInsn; int clonedIndex = varMapping.get(donorIncInsn.var); result.instructions.add(new IincInsnNode(clonedIndex, donorIncInsn.incr));
((IString)((IConstructor)v).get(3)).getValue())); } else if (((IConstructor)v).getName().equals("increment")) { il.add(new IincInsnNode(((IInteger)((IConstructor)v).get(0)).intValue(), ((IInteger)((IConstructor)v).get(1)).intValue())); } else if (((IConstructor)v).getName().equals("instruction")) {