org.objectweb.asm.util

Class CheckCodeAdapter

Implemented Interfaces:
CodeVisitor

public class CheckCodeAdapter
extends CodeAdapter

A 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

Field Summary

Fields inherited from class org.objectweb.asm.CodeAdapter

cv

Constructor Summary

CheckCodeAdapter(CodeVisitor cv)
Constructs a new CheckCodeAdapter object.

Method Summary

void
visitAttribute(Attribute attr)
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, Label start, Label end, int index)
void
visitLookupSwitchInsn(Label dflt, keys[] , labels[] )
void
visitMaxs(int maxStack, int maxLocals)
void
visitMethodInsn(int opcode, String owner, String name, String desc)
void
visitMultiANewArrayInsn(String desc, int dims)
void
visitTableSwitchInsn(int min, int max, Label dflt, labels[] )
void
visitTryCatchBlock(Label start, Label end, Label handler, String type)
void
visitTypeInsn(int opcode, String desc)
void
visitVarInsn(int opcode, int var)

Methods inherited from class org.objectweb.asm.CodeAdapter

visitAttribute, visitFieldInsn, visitIincInsn, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLookupSwitchInsn, visitMaxs, visitMethodInsn, visitMultiANewArrayInsn, visitTableSwitchInsn, visitTryCatchBlock, visitTypeInsn, visitVarInsn

Constructor Details

CheckCodeAdapter

public CheckCodeAdapter(CodeVisitor cv)
Constructs a new CheckCodeAdapter object.
Parameters:
cv - the code visitor to which this adapter must delegate calls.

Method Details

visitAttribute

public void visitAttribute(Attribute attr)
Specified by:
visitAttribute in interface CodeVisitor
Overrides:
visitAttribute in interface CodeAdapter

visitFieldInsn

public void visitFieldInsn(int opcode,
                           String owner,
                           String name,
                           String desc)
Specified by:
visitFieldInsn in interface CodeVisitor
Overrides:
visitFieldInsn in interface CodeAdapter

visitIincInsn

public void visitIincInsn(int var,
                          int increment)
Specified by:
visitIincInsn in interface CodeVisitor
Overrides:
visitIincInsn in interface CodeAdapter

visitInsn

public void visitInsn(int opcode)
Specified by:
visitInsn in interface CodeVisitor
Overrides:
visitInsn in interface CodeAdapter

visitIntInsn

public void visitIntInsn(int opcode,
                         int operand)
Specified by:
visitIntInsn in interface CodeVisitor
Overrides:
visitIntInsn in interface CodeAdapter

visitJumpInsn

public void visitJumpInsn(int opcode,
                          Label label)
Specified by:
visitJumpInsn in interface CodeVisitor
Overrides:
visitJumpInsn in interface CodeAdapter

visitLabel

public void visitLabel(Label label)
Specified by:
visitLabel in interface CodeVisitor
Overrides:
visitLabel in interface CodeAdapter

visitLdcInsn

public void visitLdcInsn(Object cst)
Specified by:
visitLdcInsn in interface CodeVisitor
Overrides:
visitLdcInsn in interface CodeAdapter

visitLineNumber

public void visitLineNumber(int line,
                            Label start)
Specified by:
visitLineNumber in interface CodeVisitor
Overrides:
visitLineNumber in interface CodeAdapter

visitLocalVariable

public void visitLocalVariable(String name,
                               String desc,
                               Label start,
                               Label end,
                               int index)
Specified by:
visitLocalVariable in interface CodeVisitor
Overrides:
visitLocalVariable in interface CodeAdapter

visitLookupSwitchInsn

public void visitLookupSwitchInsn(Label dflt,
                                  keys[] ,
                                  labels[] )
Specified by:
visitLookupSwitchInsn in interface CodeVisitor
Overrides:
visitLookupSwitchInsn in interface CodeAdapter

visitMaxs

public void visitMaxs(int maxStack,
                      int maxLocals)
Specified by:
visitMaxs in interface CodeVisitor
Overrides:
visitMaxs in interface CodeAdapter

visitMethodInsn

public void visitMethodInsn(int opcode,
                            String owner,
                            String name,
                            String desc)
Specified by:
visitMethodInsn in interface CodeVisitor
Overrides:
visitMethodInsn in interface CodeAdapter

visitMultiANewArrayInsn

public void visitMultiANewArrayInsn(String desc,
                                    int dims)
Specified by:
visitMultiANewArrayInsn in interface CodeVisitor
Overrides:
visitMultiANewArrayInsn in interface CodeAdapter

visitTableSwitchInsn

public void visitTableSwitchInsn(int min,
                                 int max,
                                 Label dflt,
                                 labels[] )
Specified by:
visitTableSwitchInsn in interface CodeVisitor
Overrides:
visitTableSwitchInsn in interface CodeAdapter

visitTryCatchBlock

public void visitTryCatchBlock(Label start,
                               Label end,
                               Label handler,
                               String type)
Specified by:
visitTryCatchBlock in interface CodeVisitor
Overrides:
visitTryCatchBlock in interface CodeAdapter

visitTypeInsn

public void visitTypeInsn(int opcode,
                          String desc)
Specified by:
visitTypeInsn in interface CodeVisitor
Overrides:
visitTypeInsn in interface CodeAdapter

visitVarInsn

public void visitVarInsn(int opcode,
                         int var)
Specified by:
visitVarInsn in interface CodeVisitor
Overrides:
visitVarInsn in interface CodeAdapter