@Override public void visitInsn(final int opcode) { super.visitInsn(opcode); execute(opcode, 0, null); if ((opcode >= Opcodes.IRETURN && opcode <= Opcodes.RETURN) || opcode == Opcodes.ATHROW) { this.locals = null; this.stack = null; } }
@Override public void visitFieldInsn( final int opcode, final String owner, final String name, final String descriptor) { super.visitFieldInsn(opcode, owner, name, descriptor); execute(opcode, 0, descriptor); }
@Override public void visitInsn(final int opcode) { super.visitInsn(opcode); execute(opcode, 0, null); if ((opcode >= Opcodes.IRETURN && opcode <= Opcodes.RETURN) || opcode == Opcodes.ATHROW) { this.locals = null; this.stack = null; } }
@Override public void visitVarInsn(final int opcode, final int var) { if (mv != null) { mv.visitVarInsn(opcode, var); } execute(opcode, var, null); }
@Override public void visitFieldInsn(final int opcode, final String owner, final String name, final String desc) { if (mv != null) { mv.visitFieldInsn(opcode, owner, name, desc); } execute(opcode, 0, desc); }
@Override public void visitVarInsn(final int opcode, final int var) { super.visitVarInsn(opcode, var); boolean isLongOrDouble = opcode == Opcodes.LLOAD || opcode == Opcodes.DLOAD || opcode == Opcodes.LSTORE || opcode == Opcodes.DSTORE; maxLocals = Math.max(maxLocals, var + (isLongOrDouble ? 2 : 1)); execute(opcode, var, null); }
@Override public void visitVarInsn(final int opcode, final int var) { super.visitVarInsn(opcode, var); boolean isLongOrDouble = opcode == Opcodes.LLOAD || opcode == Opcodes.DLOAD || opcode == Opcodes.LSTORE || opcode == Opcodes.DSTORE; maxLocals = Math.max(maxLocals, var + (isLongOrDouble ? 2 : 1)); execute(opcode, var, null); }
@Override public void visitIntInsn(final int opcode, final int operand) { super.visitIntInsn(opcode, operand); execute(opcode, operand, null); }
@Override public void visitTableSwitchInsn( final int min, final int max, final Label dflt, final Label... labels) { super.visitTableSwitchInsn(min, max, dflt, labels); execute(Opcodes.TABLESWITCH, 0, null); this.locals = null; this.stack = null; }
@Override public void visitMultiANewArrayInsn(final String descriptor, final int numDimensions) { super.visitMultiANewArrayInsn(descriptor, numDimensions); execute(Opcodes.MULTIANEWARRAY, numDimensions, descriptor); }
@Override public void visitIincInsn(final int var, final int increment) { super.visitIincInsn(var, increment); maxLocals = Math.max(maxLocals, var + 1); execute(Opcodes.IINC, var, null); }
@Override public void visitLookupSwitchInsn(final Label dflt, final int[] keys, final Label[] labels) { super.visitLookupSwitchInsn(dflt, keys, labels); execute(Opcodes.LOOKUPSWITCH, 0, null); this.locals = null; this.stack = null; }
@Override public void visitIincInsn(final int var, final int increment) { super.visitIincInsn(var, increment); maxLocals = Math.max(maxLocals, var + 1); execute(Opcodes.IINC, var, null); }
@Override public void visitLookupSwitchInsn(final Label dflt, final int[] keys, final Label[] labels) { super.visitLookupSwitchInsn(dflt, keys, labels); execute(Opcodes.LOOKUPSWITCH, 0, null); this.locals = null; this.stack = null; }
@Override public void visitMultiANewArrayInsn(final String descriptor, final int numDimensions) { super.visitMultiANewArrayInsn(descriptor, numDimensions); execute(Opcodes.MULTIANEWARRAY, numDimensions, descriptor); }
@Override public void visitIincInsn(final int var, final int increment) { if (mv != null) { mv.visitIincInsn(var, increment); } execute(Opcodes.IINC, var, null); }
@Override public void visitJumpInsn(final int opcode, final Label label) { super.visitJumpInsn(opcode, label); execute(opcode, 0, null); if (opcode == Opcodes.GOTO) { this.locals = null; this.stack = null; } }
@Override public void visitJumpInsn(final int opcode, final Label label) { super.visitJumpInsn(opcode, label); execute(opcode, 0, null); if (opcode == Opcodes.GOTO) { this.locals = null; this.stack = null; } }
@Override public void visitLookupSwitchInsn(final Label dflt, final int[] keys, final Label[] labels) { super.visitLookupSwitchInsn(dflt, keys, labels); execute(Opcodes.LOOKUPSWITCH, 0, null); this.locals = null; this.stack = null; }
@Override public void visitMultiANewArrayInsn(final String desc, final int dims) { if (mv != null) { mv.visitMultiANewArrayInsn(desc, dims); } execute(Opcodes.MULTIANEWARRAY, dims, desc); }