@Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { if (api < Opcodes.ASM5) { super.visitMethodInsn(opcode, owner, name, desc, itf); return; } p.visitMethodInsn(opcode, owner, name, desc, itf); if (mv != null) { mv.visitMethodInsn(opcode, owner, name, desc, itf); } }
@Deprecated @Override public void visitMethodInsn(int opcode, String owner, String name, String desc) { if (api >= Opcodes.ASM5) { super.visitMethodInsn(opcode, owner, name, desc); return; } p.visitMethodInsn(opcode, owner, name, desc); if (mv != null) { mv.visitMethodInsn(opcode, owner, name, desc); } }
@Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { if (api >= Opcodes.ASM5) { super.visitMethodInsn(opcode, owner, name, desc); return; } doVisitMethodInsn(opcode, owner, name, desc, opcode == Opcodes.INVOKEINTERFACE); }
@Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc, final boolean itf) { if (api < Opcodes.ASM5) { super.visitMethodInsn(opcode, owner, name, desc, itf); return; } doVisitMethodInsn(opcode, owner, name, desc, itf); }
@Deprecated public void invokespecial(final String owner, final String name, final String desc) { if (api >= Opcodes.ASM5) { invokespecial(owner, name, desc, false); return; } mv.visitMethodInsn(Opcodes.INVOKESPECIAL, owner, name, desc, false); }
@Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc, final boolean itf) { if (api < Opcodes.ASM5) { super.visitMethodInsn(opcode, owner, name, desc, itf); return; } doVisitMethodInsn(opcode, owner, name, desc, itf); }
@Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { if (api >= Opcodes.ASM5) { super.visitMethodInsn(opcode, owner, name, desc); return; } doVisitMethodInsn(opcode, owner, name, desc, opcode == Opcodes.INVOKEINTERFACE); }
public void invokespecial(final String owner, final String name, final String desc, final boolean itf) { if (api < Opcodes.ASM5) { if (itf) { throw new IllegalArgumentException( "INVOKESPECIAL on interfaces require ASM 5"); } invokespecial(owner, name, desc); return; } mv.visitMethodInsn(Opcodes.INVOKESPECIAL, owner, name, desc, itf); }
public void invokestatic(final String owner, final String name, final String desc, final boolean itf) { if (api < Opcodes.ASM5) { if (itf) { throw new IllegalArgumentException( "INVOKESTATIC on interfaces require ASM 5"); } invokestatic(owner, name, desc); return; } mv.visitMethodInsn(Opcodes.INVOKESTATIC, owner, name, desc, itf); }
@Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { if (api >= Opcodes.ASM5) { super.visitMethodInsn(opcode, owner, name, desc); return; } doVisitMethodInsn(opcode, owner, name, desc, opcode == Opcodes.INVOKEINTERFACE); }
@Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc, final boolean itf) { if (api < Opcodes.ASM5) { super.visitMethodInsn(opcode, owner, name, desc, itf); return; } doVisitMethodInsn(opcode, owner, name, desc, itf); }
@Deprecated @Override public void visitMethodInsn(int opcode, String owner, String name, String desc) { if (api >= Opcodes.ASM5) { super.visitMethodInsn(opcode, owner, name, desc); return; } instructions.add(new MethodInsnNode(opcode, owner, name, desc)); }
@Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { if (api < Opcodes.ASM5) { super.visitMethodInsn(opcode, owner, name, desc, itf); return; } instructions.add(new MethodInsnNode(opcode, owner, name, desc, itf)); }
protected void completeTransactions() { loadLocal(transLocal); mv.visitMethodInsn(INVOKEINTERFACE, TRANS_TYPE.getInternalName(), COMPLETE_ALL, "()V", true); } }
protected void setRollbackTransactions() { loadLocal(transLocal); mv.visitMethodInsn(INVOKEINTERFACE, TRANS_TYPE.getInternalName(), SET_ROLLBACK_ALL, "()V", true); }
protected void exitMonitor() { loadLocal(monitorLocal); mv.visitMethodInsn(INVOKEINTERFACE, MONITOR_TYPE.getInternalName(), EXIT, "()V", true); } }
protected void instrumentSetClassName(ClassReader cr,MethodVisitor mv){ mv.visitFieldInsn(Opcodes.GETSTATIC, cr.getClassName(), "className", "Ljava/lang/ThreadLocal;"); mv.visitLdcInsn(cr.getClassName().replace('/', '.')); mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/lang/ThreadLocal", "set", "(Ljava/lang/Object;)V",false); }
@Override public void visitCode() { super.visitCode(); mv.visitLdcInsn(PROVIDER_TYPE); mv.visitMethodInsn(Opcodes.INVOKESTATIC, "leap/lang/Factory", "getInstance", "(Ljava/lang/Class;)Ljava/lang/Object;", false); checkCast(PROVIDER_TYPE); putStatic(type, PROVIDER_FIELD, PROVIDER_TYPE); } }
private static void defineAccessorConstructor(String accessorClassNameInternal,ClassWriter cw){ cw.visit(V1_6, ACC_PUBLIC, accessorClassNameInternal, null, CLASS_NAME, null); MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, CLASS_NAME, "<init>", "()V"); mv.visitInsn(RETURN); mv.visitMaxs(0, 0); mv.visitEnd(); }
private static void defineNewInstance(String classNameInternal,ClassWriter cw){ MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "newInstance", "()Ljava/lang/Object;", null, null); mv.visitCode(); mv.visitTypeInsn(NEW, classNameInternal); mv.visitInsn(DUP); mv.visitMethodInsn(INVOKESPECIAL,classNameInternal, "<init>", "()V"); mv.visitInsn(ARETURN); mv.visitMaxs(1, 1); mv.visitEnd(); }