Class ClassFieldProbeArrayStrategy
java.lang.Object
org.jacoco.core.internal.instr.ClassFieldProbeArrayStrategy
- All Implemented Interfaces:
IProbeArrayStrategy
The strategy for regular classes adds a static field to hold the probe array
and a static initialization method requesting the probe array from the
runtime.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final IExecutionDataAccessorGeneratorprivate final longprivate final Stringprivate static final Object[]Empty frame locals.private static final Object[]Frame stack with a single boolean array.private final boolean -
Constructor Summary
ConstructorsConstructorDescriptionClassFieldProbeArrayStrategy(String className, long classId, boolean withFrames, IExecutionDataAccessorGenerator accessorGenerator) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddMembers(org.objectweb.asm.ClassVisitor cv, int probeCount) Adds additional class members required by this strategy.private voidcreateDataField(org.objectweb.asm.ClassVisitor cv) private voidcreateInitMethod(org.objectweb.asm.ClassVisitor cv, int probeCount) private intgenInitializeDataField(org.objectweb.asm.MethodVisitor mv, int probeCount) Generates the byte code to initialize the static coverage data field within this class.intstoreInstance(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 -
withFrames
private final boolean withFrames -
accessorGenerator
-
-
Constructor Details
-
ClassFieldProbeArrayStrategy
ClassFieldProbeArrayStrategy(String className, long classId, boolean withFrames, IExecutionDataAccessorGenerator accessorGenerator)
-
-
Method Details
-
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
-
createDataField
private void createDataField(org.objectweb.asm.ClassVisitor cv) -
createInitMethod
private void createInitMethod(org.objectweb.asm.ClassVisitor cv, int probeCount) -
genInitializeDataField
private int genInitializeDataField(org.objectweb.asm.MethodVisitor mv, int probeCount) Generates the byte code to initialize the static coverage data field within this class. The code will push the [Z data array on the operand stack.- Parameters:
mv- generator to emit code to
-