Class Pass3bVerifier
java.lang.Object
org.apache.bcel.verifier.PassVerifier
org.apache.bcel.verifier.structurals.Pass3bVerifier
This PassVerifier verifies a method of class file according to pass 3, so-called structural verification as described in The Java Virtual Machine
Specification, 2nd edition. More detailed information is to be found at the do_verify() method's documentation.
The system property org.apache.bcel.verifier.maxFrameSlots bounds the size of the pass 3b data flow analysis, measured in frame slots:
(max_locals + max_stack) * instruction count of the method under verification. Methods above the bound are rejected instead of analyzed. The default
is 100,000,000; a value of zero or less disables the bound.
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionPass3bVerifier(Verifier myOwner, int methodNo) This class should only be instantiated by a Verifier. -
Method Summary
Modifier and TypeMethodDescriptionPass 3b implements the data flow analysis as described in the Java Virtual Machine Specification, Second Edition.intReturns the method number as supplied when instantiating.voidinvalidReturnTypeError(Type returnedType, MethodGen m) Throws an exception indicating the returned type is not compatible with the return type of the given method.Methods inherited from class PassVerifier
addMessage, getMessages, getMessagesList, verify
-
Constructor Details
-
Pass3bVerifier
This class should only be instantiated by a Verifier.- Parameters:
myOwner- The verifier that owns this Pass3bVerifier.methodNo- The method number.- See Also:
-
-
Method Details
-
do_verify
Pass 3b implements the data flow analysis as described in the Java Virtual Machine Specification, Second Edition. Later versions will use LocalVariablesInfo objects to verify if the verifier-inferred types and the class file's debug information (LocalVariables attributes) match [TODO].- Specified by:
do_verifyin classPassVerifier- Returns:
- The VerificationResult.
- See Also:
-
getMethodNo
Returns the method number as supplied when instantiating.- Returns:
- The method number.
-
invalidReturnTypeError
Throws an exception indicating the returned type is not compatible with the return type of the given method.- Parameters:
returnedType- The type of the returned expression.m- The method we are processing.- Throws:
StructuralCodeConstraintException- Always thrown.- Since:
- 6.0
-