Class CondyProbeArrayStrategy

  • All Implemented Interfaces:
    IProbeArrayStrategy

    public class CondyProbeArrayStrategy
    extends java.lang.Object
    implements IProbeArrayStrategy
    This strategy for Java 11+ class files uses ConstantDynamic to hold the probe array and adds bootstrap method requesting the probe array from the runtime.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addMembers​(org.objectweb.asm.ClassVisitor cv, int probeCount)
      Adds additional class members required by this strategy.
      int storeInstance​(org.objectweb.asm.MethodVisitor mv, boolean clinit, int variable)
      Creates code that stores the probe array instance in the given variable.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • B_DESC

        public static final java.lang.String B_DESC
        Descriptor of the bootstrap method.
        See Also:
        Constant Field Values
      • className

        private final java.lang.String className
      • isInterface

        private final boolean isInterface
      • classId

        private final long classId
    • Constructor Detail

      • CondyProbeArrayStrategy

        CondyProbeArrayStrategy​(java.lang.String className,
                                boolean isInterface,
                                long classId,
                                IExecutionDataAccessorGenerator accessorGenerator)
    • Method Detail

      • storeInstance

        public int storeInstance​(org.objectweb.asm.MethodVisitor mv,
                                 boolean clinit,
                                 int variable)
        Description copied from interface: IProbeArrayStrategy
        Creates code that stores the probe array instance in the given variable.
        Specified by:
        storeInstance in interface IProbeArrayStrategy
        Parameters:
        mv - visitor to create code
        clinit - true in case of <clinit> method
        variable - variable index to store probe array to
        Returns:
        maximum stack size required by the generated code
      • addMembers

        public void addMembers​(org.objectweb.asm.ClassVisitor cv,
                               int probeCount)
        Description copied from interface: IProbeArrayStrategy
        Adds additional class members required by this strategy. This method is called after all original members of the class has been processed.
        Specified by:
        addMembers in interface IProbeArrayStrategy
        Parameters:
        cv - visitor to create fields and methods
        probeCount - total number of probes required for this class