org.objectweb.asm.util

Class CheckCodeAdapter

public class CheckCodeAdapter extends CodeAdapter

A {@link CodeAdapter CodeAdapter} 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

Constructor Summary
CheckCodeAdapter(CodeVisitor cv)
Constructs a new {@link CheckCodeAdapter CheckCodeAdapter} object.
Method Summary
voidvisitAttribute(Attribute attr)
voidvisitFieldInsn(int opcode, String owner, String name, String desc)
voidvisitIincInsn(int var, int increment)
voidvisitInsn(int opcode)
voidvisitIntInsn(int opcode, int operand)
voidvisitJumpInsn(int opcode, Label label)
voidvisitLabel(Label label)
voidvisitLdcInsn(Object cst)
voidvisitLineNumber(int line, Label start)
voidvisitLocalVariable(String name, String desc, Label start, Label end, int index)
voidvisitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels)
voidvisitMaxs(int maxStack, int maxLocals)
voidvisitMethodInsn(int opcode, String owner, String name, String desc)
voidvisitMultiANewArrayInsn(String desc, int dims)
voidvisitTableSwitchInsn(int min, int max, Label dflt, Label[] labels)
voidvisitTryCatchBlock(Label start, Label end, Label handler, String type)
voidvisitTypeInsn(int opcode, String desc)
voidvisitVarInsn(int opcode, int var)

Constructor Detail

CheckCodeAdapter

public CheckCodeAdapter(CodeVisitor cv)
Constructs a new {@link CheckCodeAdapter CheckCodeAdapter} object.

Parameters: cv the code visitor to which this adapter must delegate calls.

Method Detail

visitAttribute

public void visitAttribute(Attribute attr)

visitFieldInsn

public void visitFieldInsn(int opcode, String owner, String name, String desc)

visitIincInsn

public void visitIincInsn(int var, int increment)

visitInsn

public void visitInsn(int opcode)

visitIntInsn

public void visitIntInsn(int opcode, int operand)

visitJumpInsn

public void visitJumpInsn(int opcode, Label label)

visitLabel

public void visitLabel(Label label)

visitLdcInsn

public void visitLdcInsn(Object cst)

visitLineNumber

public void visitLineNumber(int line, Label start)

visitLocalVariable

public void visitLocalVariable(String name, String desc, Label start, Label end, int index)

visitLookupSwitchInsn

public void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels)

visitMaxs

public void visitMaxs(int maxStack, int maxLocals)

visitMethodInsn

public void visitMethodInsn(int opcode, String owner, String name, String desc)

visitMultiANewArrayInsn

public void visitMultiANewArrayInsn(String desc, int dims)

visitTableSwitchInsn

public void visitTableSwitchInsn(int min, int max, Label dflt, Label[] labels)

visitTryCatchBlock

public void visitTryCatchBlock(Label start, Label end, Label handler, String type)

visitTypeInsn

public void visitTypeInsn(int opcode, String desc)

visitVarInsn

public void visitVarInsn(int opcode, int var)