jodd-proxetta/src/main/java/jodd/proxetta/ProxyTargetReplacement.java
public static void info(final MethodVisitor mv, final MethodInfo methodInfo, final int argsOff) {
		mv.visitTypeInsn(Opcodes.NEW, PROXY_TARGET_INFO);
		mv.visitInsn(DUP);
		mv.visitMethodInsn(Opcodes.INVOKESPECIAL, PROXY_TARGET_INFO, "<init>", "()V", false);

//		int argsOff = methodInfo.getAllArgumentsSize();
//		argsOff++;

		mv.visitVarInsn(Opcodes.ASTORE, argsOff);

		// argument count
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		argumentsCount(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "argumentCount", "I");

		// arguments class
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		createArgumentsClassArray(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "argumentsClasses", "[Ljava/lang/Class;");

		// arguments
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		createArgumentsArray(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "arguments", "[Ljava/lang/Object;");

		// return type
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		returnType(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "returnType", AsmUtil.L_SIGNATURE_JAVA_LANG_CLASS);

		// target method name
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		targetMethodName(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "targetMethodName", AsmUtil.L_SIGNATURE_JAVA_LANG_STRING);

		// target method name
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		targetMethodDescription(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "targetMethodDescription", AsmUtil.L_SIGNATURE_JAVA_LANG_STRING);

		// target method name
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		targetMethodSignature(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "targetMethodSignature", AsmUtil.L_SIGNATURE_JAVA_LANG_STRING);

		// target class
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		targetClass(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "targetClass", AsmUtil.L_SIGNATURE_JAVA_LANG_CLASS);

		// the end
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
	}
public static void info(final MethodVisitor mv, final MethodInfo methodInfo, final int argsOff) {
		mv.visitTypeInsn(Opcodes.NEW, PROXY_TARGET_INFO);
		mv.visitInsn(DUP);
		mv.visitMethodInsn(Opcodes.INVOKESPECIAL, PROXY_TARGET_INFO, "<init>", "()V", false);

//		int argsOff = methodInfo.getAllArgumentsSize();
//		argsOff++;

		mv.visitVarInsn(Opcodes.ASTORE, argsOff);

		// argument count
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		argumentsCount(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "argumentCount", "I");

		// arguments class
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		createArgumentsClassArray(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "argumentsClasses", "[Ljava/lang/Class;");

		// arguments
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		createArgumentsArray(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "arguments", "[Ljava/lang/Object;");

		// return type
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		returnType(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "returnType", AsmUtil.L_SIGNATURE_JAVA_LANG_CLASS);

		// target method name
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		targetMethodName(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "targetMethodName", AsmUtil.L_SIGNATURE_JAVA_LANG_STRING);

		// target method name
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		targetMethodDescription(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "targetMethodDescription", AsmUtil.L_SIGNATURE_JAVA_LANG_STRING);

		// target method name
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		targetMethodSignature(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "targetMethodSignature", AsmUtil.L_SIGNATURE_JAVA_LANG_STRING);

		// target class
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
		targetClass(mv, methodInfo);
		mv.visitFieldInsn(Opcodes.PUTFIELD, PROXY_TARGET_INFO, "targetClass", AsmUtil.L_SIGNATURE_JAVA_LANG_CLASS);

		// the end
		mv.visitVarInsn(Opcodes.ALOAD, argsOff);
	}
public static void info ( final MethodVisitor mv , final MethodInfo methodInfo , final int argsOff ) { mv . visitTypeInsn ( Opcodes . NEW , PROXY_TARGET_INFO ) ; mv . visitInsn ( DUP ) ; mv . visitMethodInsn ( Opcodes . INVOKESPECIAL , PROXY_TARGET_INFO , "<init>" , "()V" , false ) ; //		int argsOff = methodInfo.getAllArgumentsSize(); //		argsOff++; mv . visitVarInsn ( Opcodes . ASTORE , argsOff ) ; // argument count mv . visitVarInsn ( Opcodes . ALOAD , argsOff ) ; argumentsCount ( mv , methodInfo ) ; mv . visitFieldInsn ( Opcodes . PUTFIELD , PROXY_TARGET_INFO , "argumentCount" , "I" ) ; // arguments class mv . visitVarInsn ( Opcodes . ALOAD , argsOff ) ; createArgumentsClassArray ( mv , methodInfo ) ; mv . visitFieldInsn ( Opcodes . PUTFIELD , PROXY_TARGET_INFO , "argumentsClasses" , "[Ljava/lang/Class;" ) ; // arguments mv . visitVarInsn ( Opcodes . ALOAD , argsOff ) ; createArgumentsArray ( mv , methodInfo ) ; mv . visitFieldInsn ( Opcodes . PUTFIELD , PROXY_TARGET_INFO , "arguments" , "[Ljava/lang/Object;" ) ; // return type mv . visitVarInsn ( Opcodes . ALOAD , argsOff ) ; returnType ( mv , methodInfo ) ; mv . visitFieldInsn ( Opcodes . PUTFIELD , PROXY_TARGET_INFO , "returnType" , AsmUtil . L_SIGNATURE_JAVA_LANG_CLASS ) ; // target method name mv . visitVarInsn ( Opcodes . ALOAD , argsOff ) ; targetMethodName ( mv , methodInfo ) ; mv . visitFieldInsn ( Opcodes . PUTFIELD , PROXY_TARGET_INFO , "targetMethodName" , AsmUtil . L_SIGNATURE_JAVA_LANG_STRING ) ; // target method name mv . visitVarInsn ( Opcodes . ALOAD , argsOff ) ; targetMethodDescription ( mv , methodInfo ) ; mv . visitFieldInsn ( Opcodes . PUTFIELD , PROXY_TARGET_INFO , "targetMethodDescription" , AsmUtil . L_SIGNATURE_JAVA_LANG_STRING ) ; // target method name mv . visitVarInsn ( Opcodes . ALOAD , argsOff ) ; targetMethodSignature ( mv , methodInfo ) ; mv . visitFieldInsn ( Opcodes . PUTFIELD , PROXY_TARGET_INFO , "targetMethodSignature" , AsmUtil . L_SIGNATURE_JAVA_LANG_STRING ) ; // target class mv . visitVarInsn ( Opcodes . ALOAD , argsOff ) ; targetClass ( mv , methodInfo ) ; mv . visitFieldInsn ( Opcodes . PUTFIELD , PROXY_TARGET_INFO , "targetClass" , AsmUtil . L_SIGNATURE_JAVA_LANG_CLASS ) ; // the end mv . visitVarInsn ( Opcodes . ALOAD , argsOff ) ; }
Visits replacement code for {@link ProxyTarget#info()}.
Visits replacement code for {