Class CondyProbeArrayStrategy

java.lang.Object
org.jacoco.core.internal.instr.CondyProbeArrayStrategy
All Implemented Interfaces:
IProbeArrayStrategy

public class CondyProbeArrayStrategy extends 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.
  • Field Details

    • B_DESC

      public static final String B_DESC
      Descriptor of the bootstrap method.
      See Also:
    • className

      private final String className
    • isInterface

      private final boolean isInterface
    • classId

      private final long classId
    • accessorGenerator

      private final IExecutionDataAccessorGenerator accessorGenerator
  • Constructor Details

  • Method Details

    • 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