@Override protected void onAfterComplete(Implementation.Context implementationContext) { mv.visitLabel(label); frameWriter.emitFrame(mv); ByteCodeAppender.Size size = record.applyCode(mv, implementationContext); stackSize = Math.max(stackSize, size.getOperandStackSize()); localVariableLength = Math.max(localVariableLength, size.getLocalVariableSize()); } }
@Override protected void onComplete(Implementation.Context implementationContext) { mv.visitLabel(label); frameWriter.emitFrame(mv); ByteCodeAppender.Size size = record.applyCode(mv, implementationContext); stackSize = Math.max(stackSize, size.getOperandStackSize()); localVariableLength = Math.max(localVariableLength, size.getLocalVariableSize()); }
/** * {@inheritDoc} */ public void apply(ClassVisitor classVisitor, TypeInitializer typeInitializer, Implementation.Context implementationContext) { ByteCodeAppender.Size size = typeInitializer.apply(mv, implementationContext, new MethodDescription.Latent.TypeInitializer(instrumentedType)); stackSize = Math.max(stackSize, size.getOperandStackSize()); localVariableLength = Math.max(localVariableLength, size.getLocalVariableSize()); onComplete(implementationContext); }
MethodReturn.of(bridgeMethod.getReturnType()) ).apply(methodVisitor, implementationContext, bridgeMethod); methodVisitor.visitMaxs(size.getOperandStackSize(), size.getLocalVariableSize()); methodVisitor.visitEnd();
/** * 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); }
/** * {@inheritDoc} */ public void applyBody(MethodVisitor methodVisitor, Implementation.Context implementationContext, AnnotationValueFilter.Factory annotationValueFilterFactory) { applyAttributes(methodVisitor, annotationValueFilterFactory); methodVisitor.visitCode(); ByteCodeAppender.Size size = applyCode(methodVisitor, implementationContext); methodVisitor.visitMaxs(size.getOperandStackSize(), size.getLocalVariableSize()); }
/** * {@inheritDoc} */ public void applyBody(MethodVisitor methodVisitor, Implementation.Context implementationContext, AnnotationValueFilter.Factory annotationValueFilterFactory) { applyAttributes(methodVisitor, annotationValueFilterFactory); methodVisitor.visitCode(); ByteCodeAppender.Size size = applyCode(methodVisitor, implementationContext); methodVisitor.visitMaxs(size.getOperandStackSize(), size.getLocalVariableSize()); }
/** * {@inheritDoc} */ public void applyBody(MethodVisitor methodVisitor, Context implementationContext, AnnotationValueFilter.Factory annotationValueFilterFactory) { methodVisitor.visitCode(); Size size = applyCode(methodVisitor, implementationContext); methodVisitor.visitMaxs(size.getOperandStackSize(), size.getLocalVariableSize()); }