public void visit(MethodVisitor mv) { if (field.isStatic()) { mv.visitFieldInsn(GETSTATIC, BytecodeHelper.getClassInternalName(classNode), field.getName(), BytecodeHelper.getTypeDescription(field.getType())); } else { mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, BytecodeHelper.getClassInternalName(classNode), field.getName(), BytecodeHelper.getTypeDescription(field.getType())); } final BytecodeHelper helper = new BytecodeHelper(mv); helper.doReturn(field.getType()); } });
public void visit(MethodVisitor mv) { if (field.isStatic()) { mv.visitFieldInsn(GETSTATIC, BytecodeHelper.getClassInternalName(classNode), field.getName(), BytecodeHelper.getTypeDescription(field.getType())); } else { mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, BytecodeHelper.getClassInternalName(classNode), field.getName(), BytecodeHelper.getTypeDescription(field.getType())); } final BytecodeHelper helper = new BytecodeHelper(mv); helper.doReturn(field.getType()); } });
helper.doReturn(method.getReturnType()); mv.visitMaxs(0, 0); mv.visitEnd();
helper.doReturn(method.getReturnType()); mv.visitMaxs(0, 0); mv.visitEnd();
public void visit(MethodVisitor mv) { BytecodeHelper helper = new BytecodeHelper(mv); mv.visitVarInsn(ALOAD,0); Parameter[] para = oldMethod.getParameters(); Parameter[] goal = overridingMethod.getParameters(); for (int i = 0; i < para.length; i++) { helper.load(para[i].getType(), i+1); if (!para[i].getType().equals(goal[i].getType())) { helper.doCast(goal[i].getType()); } } mv.visitMethodInsn( INVOKEVIRTUAL, BytecodeHelper.getClassInternalName(classNode), overridingMethod.getName(), BytecodeHelper.getMethodDescriptor(overridingMethod.getReturnType(), overridingMethod.getParameters())); helper.doReturn(oldMethod.getReturnType()); } }
public void visit(MethodVisitor mv) { BytecodeHelper helper = new BytecodeHelper(mv); mv.visitVarInsn(ALOAD,0); Parameter[] para = oldMethod.getParameters(); Parameter[] goal = overridingMethod.getParameters(); for (int i = 0; i < para.length; i++) { helper.load(para[i].getType(), i+1); if (!para[i].getType().equals(goal[i].getType())) { helper.doCast(goal[i].getType()); } } mv.visitMethodInsn( INVOKEVIRTUAL, BytecodeHelper.getClassInternalName(classNode), overridingMethod.getName(), BytecodeHelper.getMethodDescriptor(overridingMethod.getReturnType(), overridingMethod.getParameters())); helper.doReturn(oldMethod.getReturnType()); } }
helper.doReturn(method.getReturnType()); mv.visitMaxs(0, 0); mv.visitEnd();
helper.doReturn(returnType); outputReturn = true;
helper.doReturn(returnType); outputReturn = true;
public void visit(MethodVisitor mv) { BytecodeHelper helper = new BytecodeHelper(mv); mv.visitVarInsn(ALOAD,0); Parameter[] para = oldMethod.getParameters(); Parameter[] goal = overridingMethod.getParameters(); for (int i = 0; i < para.length; i++) { helper.load(para[i].getType(), i+1); if (!para[i].getType().equals(goal[i].getType())) { helper.doCast(goal[i].getType()); } } mv.visitMethodInsn( INVOKEVIRTUAL, BytecodeHelper.getClassInternalName(classNode), overridingMethod.getName(), BytecodeHelper.getMethodDescriptor(overridingMethod.getReturnType(), overridingMethod.getParameters())); helper.doReturn(oldMethod.getReturnType()); } }
helper.doReturn(returnType); outputReturn = true;