Package net.bytebuddy.asm
Class Advice.StackMapFrameHandler.Default.WithPreservedArguments.WithArgumentCopy
java.lang.Object
net.bytebuddy.asm.Advice.StackMapFrameHandler.Default
net.bytebuddy.asm.Advice.StackMapFrameHandler.Default.WithPreservedArguments
net.bytebuddy.asm.Advice.StackMapFrameHandler.Default.WithPreservedArguments.WithArgumentCopy
- All Implemented Interfaces:
Advice.StackMapFrameHandler
,Advice.StackMapFrameHandler.ForInstrumentedMethod
- Enclosing class:
- Advice.StackMapFrameHandler.Default.WithPreservedArguments
protected static class Advice.StackMapFrameHandler.Default.WithPreservedArguments.WithArgumentCopy
extends Advice.StackMapFrameHandler.Default.WithPreservedArguments
A stack map frame handler that expects that an argument copy of the original method arguments was made.
-
Nested Class Summary
Nested classes/interfaces inherited from class net.bytebuddy.asm.Advice.StackMapFrameHandler.Default.WithPreservedArguments
Advice.StackMapFrameHandler.Default.WithPreservedArguments.WithArgumentCopy, Advice.StackMapFrameHandler.Default.WithPreservedArguments.WithoutArgumentCopy
Nested classes/interfaces inherited from class net.bytebuddy.asm.Advice.StackMapFrameHandler.Default
Advice.StackMapFrameHandler.Default.ForAdvice, Advice.StackMapFrameHandler.Default.Initialization, Advice.StackMapFrameHandler.Default.TranslationMode, Advice.StackMapFrameHandler.Default.Trivial, Advice.StackMapFrameHandler.Default.WithPreservedArguments
Nested classes/interfaces inherited from interface net.bytebuddy.asm.Advice.StackMapFrameHandler
Advice.StackMapFrameHandler.Default, Advice.StackMapFrameHandler.ForInstrumentedMethod, Advice.StackMapFrameHandler.ForPostProcessor, Advice.StackMapFrameHandler.NoOp
-
Field Summary
Fields inherited from class net.bytebuddy.asm.Advice.StackMapFrameHandler.Default.WithPreservedArguments
allowCompactCompletionFrame
Fields inherited from class net.bytebuddy.asm.Advice.StackMapFrameHandler.Default
currentFrameDivergence, EMPTY, expandFrames, initialTypes, instrumentedMethod, instrumentedType, latentTypes, postMethodTypes, preMethodTypes
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
WithArgumentCopy
(TypeDescription instrumentedType, MethodDescription instrumentedMethod, List<? extends TypeDescription> initialTypes, List<? extends TypeDescription> latentTypes, List<? extends TypeDescription> preMethodTypes, List<? extends TypeDescription> postMethodTypes, boolean expandFrames) Creates a new stack map frame handler that expects an argument copy. -
Method Summary
Modifier and TypeMethodDescriptionvoid
injectStartFrame
(org.objectweb.asm.MethodVisitor methodVisitor) Injects a frame before executing the instrumented method.void
translateFrame
(org.objectweb.asm.MethodVisitor methodVisitor, int type, int localVariableLength, Object[] localVariable, int stackSize, Object[] stack) Translates a frame.Methods inherited from class net.bytebuddy.asm.Advice.StackMapFrameHandler.Default.WithPreservedArguments
bindExit, injectCompletionFrame, injectExceptionFrame, injectInitializationFrame, injectPostCompletionFrame, injectReturnFrame, translateFrame
Methods inherited from class net.bytebuddy.asm.Advice.StackMapFrameHandler.Default
bindEnter, getReaderHint, injectFullFrame, of
-
Constructor Details
-
WithArgumentCopy
protected WithArgumentCopy(TypeDescription instrumentedType, MethodDescription instrumentedMethod, List<? extends TypeDescription> initialTypes, List<? extends TypeDescription> latentTypes, List<? extends TypeDescription> preMethodTypes, List<? extends TypeDescription> postMethodTypes, boolean expandFrames) Creates a new stack map frame handler that expects an argument copy.- Parameters:
instrumentedType
- The instrumented type.instrumentedMethod
- The instrumented method.initialTypes
- A list of virtual method arguments that are explicitly added before any code execution.latentTypes
- The types that are given post execution of a possible enter advice.preMethodTypes
- A list of virtual method arguments that are available before the instrumented method is executed.postMethodTypes
- A list of virtual method arguments that are available after the instrumented method has completed.expandFrames
-true
if the meta data handler is expected to expand its frames.
-
-
Method Details
-
injectStartFrame
public void injectStartFrame(org.objectweb.asm.MethodVisitor methodVisitor) Injects a frame before executing the instrumented method.- Parameters:
methodVisitor
- The method visitor to write any frames to.
-
translateFrame
public void translateFrame(org.objectweb.asm.MethodVisitor methodVisitor, int type, int localVariableLength, @MaybeNull Object[] localVariable, int stackSize, @MaybeNull Object[] stack) Translates a frame.- Parameters:
methodVisitor
- The method visitor to write the frame to.type
- The frame's type.localVariableLength
- The local variable length.localVariable
- An array containing the types of the current local variables.stackSize
- The size of the operand stack.stack
- An array containing the types of the current operand stack.
-