Package org.jacoco.core.internal.instr
Class InterfaceFieldProbeArrayStrategy
java.lang.Object
org.jacoco.core.internal.instr.InterfaceFieldProbeArrayStrategy
- All Implemented Interfaces:
IProbeArrayStrategy
This strategy for Java 8 interfaces adds a static method requesting the probe
array from the runtime, a static field to hold the probe array and adds code
for its initialization into interface initialization method.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final IExecutionDataAccessorGenerator
private final long
private final String
private static final Object[]
Empty frame locals.private static final Object[]
Frame stack with a single boolean array.private final int
private boolean
-
Constructor Summary
ConstructorsConstructorDescriptionInterfaceFieldProbeArrayStrategy
(String className, long classId, int probeCount, IExecutionDataAccessorGenerator accessorGenerator) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addMembers
(org.objectweb.asm.ClassVisitor cv, int probeCount) Adds additional class members required by this strategy.private void
createClinitMethod
(org.objectweb.asm.ClassVisitor cv, int probeCount) private void
createDataField
(org.objectweb.asm.ClassVisitor cv) private void
createInitMethod
(org.objectweb.asm.ClassVisitor cv, int probeCount) int
storeInstance
(org.objectweb.asm.MethodVisitor mv, boolean clinit, int variable) Creates code that stores the probe array instance in the given variable.
-
Field Details
-
FRAME_STACK_ARRZ
Frame stack with a single boolean array. -
FRAME_LOCALS_EMPTY
Empty frame locals. -
className
-
classId
private final long classId -
probeCount
private final int probeCount -
accessorGenerator
-
seenClinit
private boolean seenClinit
-
-
Constructor Details
-
InterfaceFieldProbeArrayStrategy
InterfaceFieldProbeArrayStrategy(String className, long classId, int probeCount, IExecutionDataAccessorGenerator accessorGenerator)
-
-
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 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
-
createDataField
private void createDataField(org.objectweb.asm.ClassVisitor cv) -
createInitMethod
private void createInitMethod(org.objectweb.asm.ClassVisitor cv, int probeCount) -
createClinitMethod
private void createClinitMethod(org.objectweb.asm.ClassVisitor cv, int probeCount)
-