/** * {@inheritDoc} */ public Size apply(MethodVisitor methodVisitor, Implementation.Context implementationContext, MethodDescription instrumentedMethod) { return byteCodeAppender.apply(methodVisitor, implementationContext, instrumentedMethod); } }
/** * {@inheritDoc} */ public ByteCodeAppender.Size applyCode(MethodVisitor methodVisitor, Implementation.Context implementationContext) { return byteCodeAppender.apply(methodVisitor, implementationContext, methodDescription); }
@Override public Size apply( MethodVisitor methodVisitor, Context implementationContext, MethodDescription instrumentedMethod) { return delegate.apply( new MethodVisitor( Opcodes.ASM5, methodVisitor ) {
/** * {@inheritDoc} */ public Size apply(MethodVisitor methodVisitor, Implementation.Context implementationContext, MethodDescription instrumentedMethod) { Size size = new Size(0, instrumentedMethod.getStackSize()); for (ByteCodeAppender byteCodeAppender : byteCodeAppenders) { size = size.merge(byteCodeAppender.apply(methodVisitor, implementationContext, instrumentedMethod)); } return size; } }
/** * Resolves this this advice emulating method visitor for its delegate. * * @param methodVisitor The method visitor to apply. * @param implementationContext The implementation context to apply. * @param instrumentedMethod The instrumented method. * @return The resulting size of the implemented method. */ protected ByteCodeAppender.Size resolve(MethodVisitor methodVisitor, Implementation.Context implementationContext, MethodDescription instrumentedMethod) { methodVisitor.visitCode(); Size size = delegate.apply(methodVisitor, implementationContext, instrumentedMethod); methodVisitor.visitMaxs(size.getOperandStackSize(), size.getLocalVariableSize()); methodVisitor.visitEnd(); return new ByteCodeAppender.Size(stackSize, localVariableLength); }
@Override public Size apply( MethodVisitor methodVisitor, Context implementationContext, MethodDescription instrumentedMethod) { return delegate.apply( new MethodVisitor( Opcodes.ASM5, methodVisitor ) {