Class Advice.Dispatcher.Inlining.CodeTranslationVisitor

java.lang.Object
org.objectweb.asm.MethodVisitor
net.bytebuddy.asm.Advice.Dispatcher.Inlining.CodeTranslationVisitor
Enclosing class:
Advice.Dispatcher.Inlining

protected static class Advice.Dispatcher.Inlining.CodeTranslationVisitor extends org.objectweb.asm.MethodVisitor
A visitor for translating an advice method's byte code for inlining into the instrumented method.
  • Field Details

    • methodVisitor

      protected final org.objectweb.asm.MethodVisitor methodVisitor
      The original method visitor to which all instructions are eventually written to.
    • implementationContext

      protected final Implementation.Context implementationContext
      The implementation context to use.
    • argumentHandler

      protected final Advice.ArgumentHandler.ForAdvice argumentHandler
      A handler for accessing values on the local variable array.
    • methodSizeHandler

      protected final Advice.MethodSizeHandler.ForAdvice methodSizeHandler
      A handler for computing the method size requirements.
    • stackMapFrameHandler

      protected final Advice.StackMapFrameHandler.ForAdvice stackMapFrameHandler
      A handler for translating and injecting stack map frames.
    • instrumentedType

      private final TypeDescription instrumentedType
      The instrumented type.
    • instrumentedMethod

      private final MethodDescription instrumentedMethod
      The instrumented method.
    • assigner

      private final Assigner assigner
      The assigner to use.
    • adviceMethod

      protected final MethodDescription.InDefinedShape adviceMethod
      The advice method.
    • offsetMappings

      private final Map<Integer,Advice.OffsetMapping.Target> offsetMappings
      A mapping of offsets to resolved target offsets in the instrumented method.
    • suppressionHandler

      private final Advice.Dispatcher.SuppressionHandler.Bound suppressionHandler
      A bound suppression handler that is used for suppressing exceptions of this advice method.
    • relocationHandler

      private final Advice.Dispatcher.RelocationHandler.Bound relocationHandler
      A bound relocation handler that is responsible for considering a non-standard control flow.
    • exceptionHandler

      private final StackManipulation exceptionHandler
      The exception handler that is resolved for the instrumented method.
    • postProcessor

      private final Advice.PostProcessor postProcessor
      The post processor to apply.
    • exit

      private final boolean exit
      true if this visitor is for exit advice.
    • endOfMethod

      protected final org.objectweb.asm.Label endOfMethod
      A label indicating the end of the advice byte code.
  • Constructor Details

    • CodeTranslationVisitor

      protected CodeTranslationVisitor(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, Advice.ArgumentHandler.ForAdvice argumentHandler, Advice.MethodSizeHandler.ForAdvice methodSizeHandler, Advice.StackMapFrameHandler.ForAdvice stackMapFrameHandler, TypeDescription instrumentedType, MethodDescription instrumentedMethod, Assigner assigner, MethodDescription.InDefinedShape adviceMethod, Map<Integer,Advice.OffsetMapping.Target> offsetMappings, Advice.Dispatcher.SuppressionHandler.Bound suppressionHandler, Advice.Dispatcher.RelocationHandler.Bound relocationHandler, StackManipulation exceptionHandler, Advice.PostProcessor postProcessor, boolean exit)
      Creates a new code translation visitor.
      Parameters:
      methodVisitor - A method visitor for writing the instrumented method's byte code.
      implementationContext - The implementation context to use.
      argumentHandler - A handler for accessing values on the local variable array.
      methodSizeHandler - A handler for computing the method size requirements.
      stackMapFrameHandler - A handler for translating and injecting stack map frames.
      instrumentedType - The instrumented type.
      instrumentedMethod - The instrumented method.
      assigner - The assigner to use.
      adviceMethod - The advice method.
      offsetMappings - A mapping of offsets to resolved target offsets in the instrumented method.
      suppressionHandler - A bound suppression handler that is used for suppressing exceptions of this advice method.
      relocationHandler - A bound relocation handler that is responsible for considering a non-standard control flow.
      exceptionHandler - The exception handler that is resolved for the instrumented method.
      postProcessor - The post processor to apply.
      exit - true if this visitor is for exit advice.
  • Method Details

    • propagateHandler

      protected void propagateHandler(org.objectweb.asm.Label label)
      Propagates a label for an exception handler that is typically suppressed by the overlaying Advice.Dispatcher.Inlining.Resolved.AdviceMethodInliner.ExceptionTableSubstitutor.
      Parameters:
      label - The label to register as a target for an exception handler.
    • visitParameter

      public void visitParameter(String name, int modifiers)
      Overrides:
      visitParameter in class org.objectweb.asm.MethodVisitor
    • visitAnnotableParameterCount

      public void visitAnnotableParameterCount(int count, boolean visible)
      Overrides:
      visitAnnotableParameterCount in class org.objectweb.asm.MethodVisitor
    • visitAnnotationDefault

      @MaybeNull public org.objectweb.asm.AnnotationVisitor visitAnnotationDefault()
      Overrides:
      visitAnnotationDefault in class org.objectweb.asm.MethodVisitor
    • visitAnnotation

      @MaybeNull public org.objectweb.asm.AnnotationVisitor visitAnnotation(String descriptor, boolean visible)
      Overrides:
      visitAnnotation in class org.objectweb.asm.MethodVisitor
    • visitTypeAnnotation

      @MaybeNull public org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int typeReference, @MaybeNull org.objectweb.asm.TypePath typePath, String descriptor, boolean visible)
      Overrides:
      visitTypeAnnotation in class org.objectweb.asm.MethodVisitor
    • visitParameterAnnotation

      @MaybeNull public org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int index, String descriptor, boolean visible)
      Overrides:
      visitParameterAnnotation in class org.objectweb.asm.MethodVisitor
    • visitAttribute

      public void visitAttribute(org.objectweb.asm.Attribute attribute)
      Overrides:
      visitAttribute in class org.objectweb.asm.MethodVisitor
    • visitCode

      public void visitCode()
      Overrides:
      visitCode in class org.objectweb.asm.MethodVisitor
    • visitFrame

      public void visitFrame(int type, int localVariableLength, @MaybeNull Object[] localVariable, int stackSize, @MaybeNull Object[] stack)
      Overrides:
      visitFrame in class org.objectweb.asm.MethodVisitor
    • visitVarInsn

      public void visitVarInsn(int opcode, int offset)
      Overrides:
      visitVarInsn in class org.objectweb.asm.MethodVisitor
    • visitIincInsn

      public void visitIincInsn(int offset, int value)
      Overrides:
      visitIincInsn in class org.objectweb.asm.MethodVisitor
    • visitInsn

      public void visitInsn(int opcode)
      Overrides:
      visitInsn in class org.objectweb.asm.MethodVisitor
    • visitEnd

      public void visitEnd()
      Overrides:
      visitEnd in class org.objectweb.asm.MethodVisitor
    • visitMaxs

      public void visitMaxs(int stackSize, int localVariableLength)
      Overrides:
      visitMaxs in class org.objectweb.asm.MethodVisitor