src/share/vm/classfile/verifier.cpp

changeset 4895
09b0d3e9ba6c
parent 4819
36376b540a98
child 5097
92ef81e2f571
     1.1 --- a/src/share/vm/classfile/verifier.cpp	Fri Apr 05 23:10:04 2013 -0700
     1.2 +++ b/src/share/vm/classfile/verifier.cpp	Tue Apr 09 08:52:32 2013 -0700
     1.3 @@ -63,6 +63,7 @@
     1.4  
     1.5  #define NOFAILOVER_MAJOR_VERSION                       51
     1.6  #define NONZERO_PADDING_BYTES_IN_SWITCH_MAJOR_VERSION  51
     1.7 +#define STATIC_METHOD_IN_INTERFACE_MAJOR_VERSION       52
     1.8  
     1.9  // Access to external entry for VerifyClassCodes - old byte code verifier
    1.10  
    1.11 @@ -2320,6 +2321,11 @@
    1.12        types = (1 << JVM_CONSTANT_InterfaceMethodref) |
    1.13                (1 << JVM_CONSTANT_Methodref);
    1.14        break;
    1.15 +    case Bytecodes::_invokestatic:
    1.16 +      types = (_klass->major_version() < STATIC_METHOD_IN_INTERFACE_MAJOR_VERSION) ?
    1.17 +        (1 << JVM_CONSTANT_Methodref) :
    1.18 +        ((1 << JVM_CONSTANT_InterfaceMethodref) | (1 << JVM_CONSTANT_Methodref));
    1.19 +      break;
    1.20      default:
    1.21        types = 1 << JVM_CONSTANT_Methodref;
    1.22    }

mercurial