org.objectweb.asm.util
Class CheckMethodAdapter
public
class
CheckMethodAdapter
extends MethodAdapter
A {@link MethodAdapter} that checks that its methods are properly used. More
precisely this code adapter checks each instruction individually (i.e., each
visit method checks some preconditions based
only on its arguments -
such as the fact that the given opcode is correct for a given visit method),
but does
not check the
sequence of instructions. For example,
in a method whose signature is
void m (), the invalid instruction
IRETURN, or the invalid sequence IADD L2I will
not be detected by
this code adapter.
Author: Eric Bruneton
Method Summary |
AnnotationVisitor | visitAnnotation(String desc, boolean visible) |
AnnotationVisitor | visitAnnotationDefault() |
void | visitAttribute(Attribute attr) |
void | visitCode() |
void | visitEnd() |
void | visitFieldInsn(int opcode, String owner, String name, String desc) |
void | visitIincInsn(int var, int increment) |
void | visitInsn(int opcode) |
void | visitIntInsn(int opcode, int operand) |
void | visitJumpInsn(int opcode, Label label) |
void | visitLabel(Label label) |
void | visitLdcInsn(Object cst) |
void | visitLineNumber(int line, Label start) |
void | visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index) |
void | visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) |
void | visitMaxs(int maxStack, int maxLocals) |
void | visitMethodInsn(int opcode, String owner, String name, String desc) |
void | visitMultiANewArrayInsn(String desc, int dims) |
AnnotationVisitor | visitParameterAnnotation(int parameter, String desc, boolean visible) |
void | visitTableSwitchInsn(int min, int max, Label dflt, Label[] labels) |
void | visitTryCatchBlock(Label start, Label end, Label handler, String type) |
void | visitTypeInsn(int opcode, String desc) |
void | visitVarInsn(int opcode, int var) |
Constructs a new {@link CheckMethodAdapter} object.
Parameters: cv the code visitor to which this adapter must delegate calls.
public void visitCode()
public void visitEnd()
public void visitFieldInsn(int opcode, String owner, String name, String desc)
public void visitIincInsn(int var, int increment)
public void visitInsn(int opcode)
public void visitIntInsn(int opcode, int operand)
public void visitJumpInsn(int opcode,
Label label)
public void visitLabel(
Label label)
public void visitLdcInsn(Object cst)
public void visitLineNumber(int line,
Label start)
public void visitLocalVariable(String name, String desc, String signature,
Label start,
Label end, int index)
public void visitLookupSwitchInsn(
Label dflt, int[] keys,
Label[] labels)
public void visitMaxs(int maxStack, int maxLocals)
public void visitMethodInsn(int opcode, String owner, String name, String desc)
public void visitMultiANewArrayInsn(String desc, int dims)
public
AnnotationVisitor visitParameterAnnotation(int parameter, String desc, boolean visible)
public void visitTableSwitchInsn(int min, int max,
Label dflt,
Label[] labels)
public void visitTryCatchBlock(
Label start,
Label end,
Label handler, String type)
public void visitTypeInsn(int opcode, String desc)
public void visitVarInsn(int opcode, int var)