Class Advice.MethodSizeHandler.Default

java.lang.Object
net.bytebuddy.asm.Advice.MethodSizeHandler.Default
All Implemented Interfaces:
Advice.MethodSizeHandler, Advice.MethodSizeHandler.ForInstrumentedMethod
Direct Known Subclasses:
Advice.MethodSizeHandler.Default.WithCopiedArguments, Advice.MethodSizeHandler.Default.WithRetainedArguments
Enclosing interface:
Advice.MethodSizeHandler

public abstract static class Advice.MethodSizeHandler.Default extends Object implements Advice.MethodSizeHandler.ForInstrumentedMethod
A default implementation for a method size handler.
  • Field Details

    • instrumentedMethod

      protected final MethodDescription instrumentedMethod
      The instrumented method.
    • initialTypes

      protected final List<? extends TypeDescription> initialTypes
      A list of virtual method arguments that are explicitly added before any code execution.
    • preMethodTypes

      protected final List<? extends TypeDescription> preMethodTypes
      A list of virtual method arguments that are available before the instrumented method is executed.
    • postMethodTypes

      protected final List<? extends TypeDescription> postMethodTypes
      A list of virtual method arguments that are available after the instrumented method has completed.
    • stackSize

      protected int stackSize
      The maximum stack size required by a visited advice method.
    • localVariableLength

      protected int localVariableLength
      The maximum length of the local variable array required by a visited advice method.
  • Constructor Details

    • Default

      protected Default(MethodDescription instrumentedMethod, List<? extends TypeDescription> initialTypes, List<? extends TypeDescription> preMethodTypes, List<? extends TypeDescription> postMethodTypes)
      Creates a new default meta data handler that recomputes the space requirements of an instrumented method.
      Parameters:
      instrumentedMethod - The instrumented method.
      initialTypes - A list of virtual method arguments that are explicitly added before any code execution.
      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.
  • Method Details

    • of

      protected static Advice.MethodSizeHandler.ForInstrumentedMethod of(MethodDescription instrumentedMethod, List<? extends TypeDescription> initialTypes, List<? extends TypeDescription> preMethodTypes, List<? extends TypeDescription> postMethodTypes, boolean copyArguments, int writerFlags)
      Creates a method size handler applicable for the given instrumented method.
      Parameters:
      instrumentedMethod - The instrumented method.
      initialTypes - A list of virtual method arguments that are explicitly added before any code execution.
      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.
      copyArguments - true if the original arguments are copied before invoking the instrumented method.
      writerFlags - The flags supplied to the ASM class writer.
      Returns:
      An appropriate method size handler.
    • bindEnter

      Binds a method size handler for the enter advice.
      Specified by:
      bindEnter in interface Advice.MethodSizeHandler.ForInstrumentedMethod
      Parameters:
      adviceMethod - The method representing the enter advice.
      Returns:
      A method size handler for the enter advice.
    • requireStackSize

      public void requireStackSize(int stackSize)
      Records a minimum stack size required by the represented advice method.
      Specified by:
      requireStackSize in interface Advice.MethodSizeHandler
      Parameters:
      stackSize - The minimum size required by the represented advice method.
    • requireLocalVariableLength

      public void requireLocalVariableLength(int localVariableLength)
      Requires a minimum length of the local variable array.
      Specified by:
      requireLocalVariableLength in interface Advice.MethodSizeHandler
      Parameters:
      localVariableLength - The minimal required length of the local variable array.
    • compoundStackSize

      public int compoundStackSize(int stackSize)
      Computes a compound stack size for the advice and the translated instrumented method.
      Specified by:
      compoundStackSize in interface Advice.MethodSizeHandler.ForInstrumentedMethod
      Parameters:
      stackSize - The required stack size of the instrumented method before translation.
      Returns:
      The stack size required by the instrumented method and its advice methods.
    • compoundLocalVariableLength

      public int compoundLocalVariableLength(int localVariableLength)
      Computes a compound local variable array length for the advice and the translated instrumented method.
      Specified by:
      compoundLocalVariableLength in interface Advice.MethodSizeHandler.ForInstrumentedMethod
      Parameters:
      localVariableLength - The required local variable array length of the instrumented method before translation.
      Returns:
      The local variable length required by the instrumented method and its advice methods.