Package org.jacoco.core.internal.instr
Class DuplicateFrameEliminator
java.lang.Object
org.objectweb.asm.MethodVisitor
org.jacoco.core.internal.instr.DuplicateFrameEliminator
class DuplicateFrameEliminator
extends org.objectweb.asm.MethodVisitor
Eliminates consecutive stackmap frame definitions which causes ASM to create
invalid class files. This situation occurs when the original class files
contains additional stackmap frames at unexpected offsets, which is case for
some class files compiled with ECJ.
-
Field Summary
FieldsFields inherited from class org.objectweb.asm.MethodVisitor
api, mv
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
visitFieldInsn
(int opcode, String owner, String name, String desc) void
visitFrame
(int type, int nLocal, Object[] local, int nStack, Object[] stack) void
visitIincInsn
(int var, int increment) void
visitInsn
(int opcode) void
visitIntInsn
(int opcode, int operand) void
visitInvokeDynamicInsn
(String name, String desc, org.objectweb.asm.Handle bsm, Object... bsmArgs) void
visitJumpInsn
(int opcode, org.objectweb.asm.Label label) void
visitLdcInsn
(Object cst) void
visitLookupSwitchInsn
(org.objectweb.asm.Label dflt, int[] keys, org.objectweb.asm.Label[] labels) void
visitMethodInsn
(int opcode, String owner, String name, String desc, boolean itf) void
visitMultiANewArrayInsn
(String desc, int dims) void
visitTableSwitchInsn
(int min, int max, org.objectweb.asm.Label dflt, org.objectweb.asm.Label... labels) void
visitTypeInsn
(int opcode, String type) void
visitVarInsn
(int opcode, int var) Methods inherited from class org.objectweb.asm.MethodVisitor
getDelegate, visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitInsnAnnotation, visitLabel, visitLineNumber, visitLocalVariable, visitLocalVariableAnnotation, visitMaxs, visitMethodInsn, visitParameter, visitParameterAnnotation, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeAnnotation
-
Field Details
-
instruction
private boolean instruction
-
-
Constructor Details
-
DuplicateFrameEliminator
public DuplicateFrameEliminator(org.objectweb.asm.MethodVisitor mv)
-
-
Method Details
-
visitFrame
- Overrides:
visitFrame
in classorg.objectweb.asm.MethodVisitor
-
visitInsn
public void visitInsn(int opcode) - Overrides:
visitInsn
in classorg.objectweb.asm.MethodVisitor
-
visitIntInsn
public void visitIntInsn(int opcode, int operand) - Overrides:
visitIntInsn
in classorg.objectweb.asm.MethodVisitor
-
visitVarInsn
public void visitVarInsn(int opcode, int var) - Overrides:
visitVarInsn
in classorg.objectweb.asm.MethodVisitor
-
visitTypeInsn
- Overrides:
visitTypeInsn
in classorg.objectweb.asm.MethodVisitor
-
visitFieldInsn
- Overrides:
visitFieldInsn
in classorg.objectweb.asm.MethodVisitor
-
visitMethodInsn
- Overrides:
visitMethodInsn
in classorg.objectweb.asm.MethodVisitor
-
visitInvokeDynamicInsn
public void visitInvokeDynamicInsn(String name, String desc, org.objectweb.asm.Handle bsm, Object... bsmArgs) - Overrides:
visitInvokeDynamicInsn
in classorg.objectweb.asm.MethodVisitor
-
visitJumpInsn
public void visitJumpInsn(int opcode, org.objectweb.asm.Label label) - Overrides:
visitJumpInsn
in classorg.objectweb.asm.MethodVisitor
-
visitLdcInsn
- Overrides:
visitLdcInsn
in classorg.objectweb.asm.MethodVisitor
-
visitIincInsn
public void visitIincInsn(int var, int increment) - Overrides:
visitIincInsn
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
-
visitLookupSwitchInsn
public void visitLookupSwitchInsn(org.objectweb.asm.Label dflt, int[] keys, org.objectweb.asm.Label[] labels) - Overrides:
visitLookupSwitchInsn
in classorg.objectweb.asm.MethodVisitor
-
visitMultiANewArrayInsn
- Overrides:
visitMultiANewArrayInsn
in classorg.objectweb.asm.MethodVisitor
-