Class Pass3bVerifier


  • public final class Pass3bVerifier
    extends PassVerifier
    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.
    See Also:
    do_verify()
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  Pass3bVerifier.InstructionContextQueue
      An InstructionContextQueue is a utility class that holds (InstructionContext, ArrayList) pairs in a Queue data structure.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static boolean DEBUG
      In DEBUG mode, the verification algorithm is not randomized.
      private int methodNo
      The method number to verify.
      private Verifier myOwner
      The Verifier that created this.
    • Constructor Summary

      Constructors 
      Constructor Description
      Pass3bVerifier​(Verifier owner, int method_no)
      This class should only be instantiated by a Verifier.
    • Field Detail

      • DEBUG

        private static final boolean DEBUG
        In DEBUG mode, the verification algorithm is not randomized.
        See Also:
        Constant Field Values
      • myOwner

        private final Verifier myOwner
        The Verifier that created this.
      • methodNo

        private final int methodNo
        The method number to verify.
    • Constructor Detail

      • Pass3bVerifier

        public Pass3bVerifier​(Verifier owner,
                              int method_no)
        This class should only be instantiated by a Verifier.
        See Also:
        Verifier
    • Method Detail

      • invalidReturnTypeError

        public void invalidReturnTypeError​(Type returnedType,
                                           MethodGen m)
        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
        Since:
        6.0
      • getMethodNo

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