protected abstract static class Advice.StackMapFrameHandler.Default.WithPreservedArguments extends Advice.StackMapFrameHandler.Default
| Modifier and Type | Class and Description |
|---|---|
protected static class |
Advice.StackMapFrameHandler.Default.WithPreservedArguments.WithArgumentCopy
A stack map frame handler that expects that an argument copy of the original method arguments was made.
|
protected static class |
Advice.StackMapFrameHandler.Default.WithPreservedArguments.WithoutArgumentCopy
A stack map frame handler that expects that the original argument frames remain preserved throughout the original invocation.
|
Advice.StackMapFrameHandler.Default.ForAdvice, Advice.StackMapFrameHandler.Default.Initialization, Advice.StackMapFrameHandler.Default.TranslationMode, Advice.StackMapFrameHandler.Default.Trivial, Advice.StackMapFrameHandler.Default.WithPreservedArgumentsAdvice.StackMapFrameHandler.Default, Advice.StackMapFrameHandler.ForInstrumentedMethod, Advice.StackMapFrameHandler.ForPostProcessor, Advice.StackMapFrameHandler.NoOp| Modifier and Type | Field and Description |
|---|---|
protected boolean |
allowCompactCompletionFrame
true if a completion frame for the method bust be a full frame to reflect an initialization change. |
currentFrameDivergence, EMPTY, expandFrames, initialTypes, instrumentedMethod, instrumentedType, latentTypes, postMethodTypes, preMethodTypes| Modifier | Constructor and Description |
|---|---|
protected |
WithPreservedArguments(TypeDescription instrumentedType,
MethodDescription instrumentedMethod,
List<? extends TypeDescription> initialTypes,
List<? extends TypeDescription> latentTypes,
List<? extends TypeDescription> preMethodTypes,
List<? extends TypeDescription> postMethodTypes,
boolean expandFrames,
boolean allowCompactCompletionFrame)
Creates a new stack map frame handler that requires the stack map frames of the original arguments to be preserved.
|
| Modifier and Type | Method and Description |
|---|---|
Advice.StackMapFrameHandler.ForAdvice |
bindExit(MethodDescription.InDefinedShape adviceMethod)
Binds this meta data handler for the exit advice.
|
void |
injectCompletionFrame(MethodVisitor methodVisitor)
Injects a frame indicating the completion of the currently handled method, i.e.
|
void |
injectExceptionFrame(MethodVisitor methodVisitor)
Injects a frame indicating the beginning of an exception handler for the currently handled method.
|
void |
injectInitializationFrame(MethodVisitor methodVisitor)
Injects a frame after initialization if any initialization is performed.
|
void |
injectPostCompletionFrame(MethodVisitor methodVisitor)
Injects a frame indicating the completion of the currently handled method, i.e.
|
void |
injectReturnFrame(MethodVisitor methodVisitor)
Injects a frame indicating the beginning of a return value handler for the currently handled method.
|
protected void |
translateFrame(MethodVisitor methodVisitor,
Advice.StackMapFrameHandler.Default.TranslationMode translationMode,
MethodDescription methodDescription,
List<? extends TypeDescription> additionalTypes,
int type,
int localVariableLength,
Object[] localVariable,
int stackSize,
Object[] stack)
Translates a frame.
|
bindEnter, getReaderHint, injectFullFrame, ofclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitinjectStartFrametranslateFrameprotected boolean allowCompactCompletionFrame
true if a completion frame for the method bust be a full frame to reflect an initialization change.protected WithPreservedArguments(TypeDescription instrumentedType, MethodDescription instrumentedMethod, List<? extends TypeDescription> initialTypes, List<? extends TypeDescription> latentTypes, List<? extends TypeDescription> preMethodTypes, List<? extends TypeDescription> postMethodTypes, boolean expandFrames, boolean allowCompactCompletionFrame)
instrumentedType - The instrumented type.instrumentedMethod - The instrumented method.initialTypes - A list of virtual method arguments that are explicitly added before any code execution.latentTypes - A list of virtual arguments that are available after the enter advice method is executed.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.allowCompactCompletionFrame - true if a completion frame for the method bust be a full frame to reflect an initialization change.protected void translateFrame(MethodVisitor methodVisitor, Advice.StackMapFrameHandler.Default.TranslationMode translationMode, MethodDescription methodDescription, List<? extends TypeDescription> additionalTypes, int type, int localVariableLength, @MaybeNull Object[] localVariable, int stackSize, @MaybeNull Object[] stack)
Advice.StackMapFrameHandler.DefaulttranslateFrame in class Advice.StackMapFrameHandler.DefaultmethodVisitor - The method visitor to write the frame to.translationMode - The translation mode to apply.methodDescription - The method description for which the frame is written.additionalTypes - The additional types to consider part of the instrumented method's parameters.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.public Advice.StackMapFrameHandler.ForAdvice bindExit(MethodDescription.InDefinedShape adviceMethod)
adviceMethod - The exit advice method.public void injectReturnFrame(MethodVisitor methodVisitor)
methodVisitor - The method visitor onto which to apply the stack map frame.public void injectExceptionFrame(MethodVisitor methodVisitor)
methodVisitor - The method visitor onto which to apply the stack map frame.public void injectCompletionFrame(MethodVisitor methodVisitor)
methodVisitor - The method visitor onto which to apply the stack map frame.public void injectPostCompletionFrame(MethodVisitor methodVisitor)
methodVisitor - The method visitor onto which to apply the stack map frame.public void injectInitializationFrame(MethodVisitor methodVisitor)
methodVisitor - The method visitor to write any frames to.Copyright © 2014–2024. All rights reserved.