org.apache.bcel.verifier.statics
Class Pass3aVerifier

java.lang.Object
  extended by org.apache.bcel.verifier.PassVerifier
      extended by org.apache.bcel.verifier.statics.Pass3aVerifier

public final class Pass3aVerifier
extends PassVerifier

This PassVerifier verifies a class file according to pass 3, static part as described in The Java Virtual Machine Specification, 2nd edition. More detailed information is to be found at the do_verify() method's documentation.

Version:
$Id: Pass3aVerifier.java 386056 2006-03-15 11:31:56Z tcurdt $
See Also:
do_verify()

Constructor Summary
Pass3aVerifier(Verifier owner, int method_no)
          Should only be instantiated by a Verifier.
 
Method Summary
 VerificationResult do_verify()
          Pass 3a is the verification of static constraints of JVM code (such as legal targets of branch instructions).
 int getMethodNo()
          Returns the method number as supplied when instantiating.
 
Methods inherited from class org.apache.bcel.verifier.PassVerifier
addMessage, getMessages, verify
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Pass3aVerifier

public Pass3aVerifier(Verifier owner,
                      int method_no)
Should only be instantiated by a Verifier.

Method Detail

do_verify

public VerificationResult do_verify()
Pass 3a is the verification of static constraints of JVM code (such as legal targets of branch instructions). This is the part of pass 3 where you do not need data flow analysis. JustIce also delays the checks for a correct exception table of a Code attribute and correct line number entries in a LineNumberTable attribute of a Code attribute (which conceptually belong to pass 2) to this pass. Also, most of the check for valid local variable entries in a LocalVariableTable attribute of a Code attribute is delayed until this pass. All these checks need access to the code array of the Code attribute.

Specified by:
do_verify in class PassVerifier
Throws:
InvalidMethodException - if the method to verify does not exist.

getMethodNo

public int getMethodNo()
Returns the method number as supplied when instantiating.



Copyright © 2002-2006 Apache Software Foundation. All Rights Reserved.