package org.nutz.aop.asm; import static org.nutz.repo.org.objectweb.asm.Opcodes.ALOAD; import static org.nutz.repo.org.objectweb.asm.Opcodes.INVOKESPECIAL; import static org.nutz.repo.org.objectweb.asm.Opcodes.RETURN; import org.nutz.repo.org.objectweb.asm.MethodVisitor; /** * @author wendal(wendal1985@gmail.com) */ class ChangeToChildConstructorMethodAdapter extends NormalMethodAdapter { private String superClassName; ChangeToChildConstructorMethodAdapter( MethodVisitor mv, String desc, int access, String superClassName) { super(mv, desc, access); this.superClassName = superClassName; } void visitCode() { mv.visitCode(); mv.visitVarInsn(ALOAD, 0); loadArgs(); mv.visitMethodInsn(INVOKESPECIAL, superClassName, "<init>", desc); mv.visitInsn(RETURN); mv.visitMaxs(2, 2); mv.visitEnd(); } }