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 usesConstantDynamicto hold the probe array and adds bootstrap method requesting the probe array from the runtime.
-
-
Field Summary
Fields Modifier and Type Field Description private IExecutionDataAccessorGeneratoraccessorGeneratorstatic java.lang.StringB_DESCDescriptor of the bootstrap method.private longclassIdprivate java.lang.StringclassNameprivate booleanisInterface
-
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 voidaddMembers(org.objectweb.asm.ClassVisitor cv, int probeCount)Adds additional class members required by this strategy.intstoreInstance(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:IProbeArrayStrategyCreates code that stores the probe array instance in the given variable.- Specified by:
storeInstancein 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:IProbeArrayStrategyAdds additional class members required by this strategy. This method is called after all original members of the class has been processed.- Specified by:
addMembersin interfaceIProbeArrayStrategy- Parameters:
cv- visitor to create fields and methodsprobeCount- total number of probes required for this class
-
-