Package org.jacoco.core.internal.flow
Class MethodProbesAdapter
- java.lang.Object
-
- org.objectweb.asm.MethodVisitor
-
- org.jacoco.core.internal.flow.MethodProbesAdapter
-
public final class MethodProbesAdapter extends org.objectweb.asm.MethodVisitor
Adapter that creates additional visitor events for probes to be inserted into a method.
-
-
Field Summary
Fields Modifier and Type Field Description private org.objectweb.asm.commons.AnalyzerAdapter
analyzer
private IProbeIdGenerator
idGenerator
private MethodProbesVisitor
probesVisitor
private java.util.Map<org.objectweb.asm.Label,org.objectweb.asm.Label>
tryCatchProbeLabels
-
Constructor Summary
Constructors Constructor Description MethodProbesAdapter(MethodProbesVisitor probesVisitor, IProbeIdGenerator idGenerator)
Create a new adapter instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private IFrame
frame(int popCount)
private org.objectweb.asm.Label
getTryCatchLabel(org.objectweb.asm.Label label)
private int
jumpPopCount(int opcode)
private boolean
markLabels(org.objectweb.asm.Label dflt, org.objectweb.asm.Label[] labels)
void
setAnalyzer(org.objectweb.asm.commons.AnalyzerAdapter analyzer)
If an analyzer is setIFrame
handles are calculated and emitted to the probes methods.void
visitInsn(int opcode)
void
visitJumpInsn(int opcode, org.objectweb.asm.Label label)
void
visitLabel(org.objectweb.asm.Label label)
void
visitLookupSwitchInsn(org.objectweb.asm.Label dflt, int[] keys, org.objectweb.asm.Label[] labels)
void
visitTableSwitchInsn(int min, int max, org.objectweb.asm.Label dflt, org.objectweb.asm.Label... labels)
void
visitTryCatchBlock(org.objectweb.asm.Label start, org.objectweb.asm.Label end, org.objectweb.asm.Label handler, java.lang.String type)
-
Methods inherited from class org.objectweb.asm.MethodVisitor
getDelegate, visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitFieldInsn, visitFrame, visitIincInsn, visitInsnAnnotation, visitIntInsn, visitInvokeDynamicInsn, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLocalVariableAnnotation, visitMaxs, visitMethodInsn, visitMethodInsn, visitMultiANewArrayInsn, visitParameter, visitParameterAnnotation, visitTryCatchAnnotation, visitTypeAnnotation, visitTypeInsn, visitVarInsn
-
-
-
-
Field Detail
-
probesVisitor
private final MethodProbesVisitor probesVisitor
-
idGenerator
private final IProbeIdGenerator idGenerator
-
analyzer
private org.objectweb.asm.commons.AnalyzerAdapter analyzer
-
tryCatchProbeLabels
private final java.util.Map<org.objectweb.asm.Label,org.objectweb.asm.Label> tryCatchProbeLabels
-
-
Constructor Detail
-
MethodProbesAdapter
public MethodProbesAdapter(MethodProbesVisitor probesVisitor, IProbeIdGenerator idGenerator)
Create a new adapter instance.- Parameters:
probesVisitor
- visitor to delegate toidGenerator
- generator for unique probe ids
-
-
Method Detail
-
setAnalyzer
public void setAnalyzer(org.objectweb.asm.commons.AnalyzerAdapter analyzer)
If an analyzer is setIFrame
handles are calculated and emitted to the probes methods.- Parameters:
analyzer
- optional analyzer to set
-
visitTryCatchBlock
public void visitTryCatchBlock(org.objectweb.asm.Label start, org.objectweb.asm.Label end, org.objectweb.asm.Label handler, java.lang.String type)
- Overrides:
visitTryCatchBlock
in classorg.objectweb.asm.MethodVisitor
-
getTryCatchLabel
private org.objectweb.asm.Label getTryCatchLabel(org.objectweb.asm.Label label)
-
visitLabel
public void visitLabel(org.objectweb.asm.Label label)
- Overrides:
visitLabel
in classorg.objectweb.asm.MethodVisitor
-
visitInsn
public void visitInsn(int opcode)
- Overrides:
visitInsn
in classorg.objectweb.asm.MethodVisitor
-
visitJumpInsn
public void visitJumpInsn(int opcode, org.objectweb.asm.Label label)
- Overrides:
visitJumpInsn
in classorg.objectweb.asm.MethodVisitor
-
jumpPopCount
private int jumpPopCount(int opcode)
-
visitLookupSwitchInsn
public void visitLookupSwitchInsn(org.objectweb.asm.Label dflt, int[] keys, org.objectweb.asm.Label[] labels)
- Overrides:
visitLookupSwitchInsn
in classorg.objectweb.asm.MethodVisitor
-
visitTableSwitchInsn
public void visitTableSwitchInsn(int min, int max, org.objectweb.asm.Label dflt, org.objectweb.asm.Label... labels)
- Overrides:
visitTableSwitchInsn
in classorg.objectweb.asm.MethodVisitor
-
markLabels
private boolean markLabels(org.objectweb.asm.Label dflt, org.objectweb.asm.Label[] labels)
-
frame
private IFrame frame(int popCount)
-
-