Package net.bytebuddy.build
Class CachedReturnPlugin.AdviceResolver.ExitAdviceByteCodeAppender
java.lang.Object
net.bytebuddy.build.CachedReturnPlugin.AdviceResolver.ExitAdviceByteCodeAppender
- All Implemented Interfaces:
ByteCodeAppender
- Enclosing class:
CachedReturnPlugin.AdviceResolver
@Enhance
protected static class CachedReturnPlugin.AdviceResolver.ExitAdviceByteCodeAppender
extends Object
implements ByteCodeAppender
A byte code appender for the exit advice.
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.bytecode.ByteCodeAppender
ByteCodeAppender.Compound, ByteCodeAppender.Simple, ByteCodeAppender.Size
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final int
A jump instruction that checks if the cached value is already set.private final int
An instruction to convert the cached value to a value that is applied on the branch instruction.private final int
The byte code that loads a value onto the stack from the local variable array.private final int
The size of the created type on the operand stack.private final int
The byte code that stores a value to the local variable array. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
ExitAdviceByteCodeAppender
(int load, int store, int convert, int branch, int size) Creates a byte code appender for exit advice on a cached return plugin. -
Method Summary
Modifier and TypeMethodDescriptionapply
(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, MethodDescription instrumentedMethod) Applies this byte code appender to a type creation process.
-
Field Details
-
load
private final int loadThe byte code that loads a value onto the stack from the local variable array. -
store
private final int storeThe byte code that stores a value to the local variable array. -
convert
private final int convertAn instruction to convert the cached value to a value that is applied on the branch instruction. -
branch
private final int branchA jump instruction that checks if the cached value is already set. -
size
private final int sizeThe size of the created type on the operand stack.
-
-
Constructor Details
-
ExitAdviceByteCodeAppender
protected ExitAdviceByteCodeAppender(int load, int store, int convert, int branch, int size) Creates a byte code appender for exit advice on a cached return plugin.- Parameters:
load
- The byte code that loads a value onto the stack from the local variable array.store
- The byte code that stores a value to the local variable array.convert
- An instruction to convert the cached value to a value that is applied on the branch instruction.branch
- A jump instruction that checks if the cached value is already set.size
- The size of the created type on the operand stack.
-
-
Method Details
-
apply
public ByteCodeAppender.Size apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, MethodDescription instrumentedMethod) Applies this byte code appender to a type creation process.- Specified by:
apply
in interfaceByteCodeAppender
- Parameters:
methodVisitor
- The method visitor to which the byte code appender writes its code to.implementationContext
- The implementation context of the current type creation process.instrumentedMethod
- The method that is the target of the instrumentation.- Returns:
- The required size for the applied byte code to run.
-