Package org.jacoco.core.internal.instr
Class CondyProbeArrayStrategy
- java.lang.Object
-
- org.jacoco.core.internal.instr.CondyProbeArrayStrategy
-
- All Implemented Interfaces:
IProbeArrayStrategy
public class CondyProbeArrayStrategy extends java.lang.Object implements IProbeArrayStrategy
This strategy for Java 11+ class files usesConstantDynamic
to hold the probe array and adds bootstrap method requesting the probe array from the runtime.
-
-
Field Summary
Fields Modifier and Type Field Description private IExecutionDataAccessorGenerator
accessorGenerator
static java.lang.String
B_DESC
Descriptor of the bootstrap method.private long
classId
private java.lang.String
className
private boolean
isInterface
-
Constructor Summary
Constructors Constructor Description CondyProbeArrayStrategy(java.lang.String className, boolean isInterface, long classId, IExecutionDataAccessorGenerator accessorGenerator)
-
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.
-
-
-
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
-
accessorGenerator
private final IExecutionDataAccessorGenerator accessorGenerator
-
-
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 interfaceIProbeArrayStrategy
- Parameters:
mv
- visitor to create codeclinit
- true in case of<clinit>
methodvariable
- 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 interfaceIProbeArrayStrategy
- Parameters:
cv
- visitor to create fields and methodsprobeCount
- total number of probes required for this class
-
-