Mercurial > hg > graal-jvmci-8
comparison src/share/vm/classfile/verifier.cpp @ 9066:09b0d3e9ba6c hs25-b27
8011671: JCK tests on static interface methods fail under b84: Illegal type at constant pool entry 5
Summary: Restore incorrect removal of support for static interface method verification in Java 8
Reviewed-by: kvn, coleenp
author | bharadwaj |
---|---|
date | Tue, 09 Apr 2013 08:52:32 -0700 |
parents | 36376b540a98 |
children | 92ef81e2f571 |
comparison
equal
deleted
inserted
replaced
9065:b933e75e7cbe | 9066:09b0d3e9ba6c |
---|---|
61 # include "bytes_ppc.hpp" | 61 # include "bytes_ppc.hpp" |
62 #endif | 62 #endif |
63 | 63 |
64 #define NOFAILOVER_MAJOR_VERSION 51 | 64 #define NOFAILOVER_MAJOR_VERSION 51 |
65 #define NONZERO_PADDING_BYTES_IN_SWITCH_MAJOR_VERSION 51 | 65 #define NONZERO_PADDING_BYTES_IN_SWITCH_MAJOR_VERSION 51 |
66 #define STATIC_METHOD_IN_INTERFACE_MAJOR_VERSION 52 | |
66 | 67 |
67 // Access to external entry for VerifyClassCodes - old byte code verifier | 68 // Access to external entry for VerifyClassCodes - old byte code verifier |
68 | 69 |
69 extern "C" { | 70 extern "C" { |
70 typedef jboolean (*verify_byte_codes_fn_t)(JNIEnv *, jclass, char *, jint); | 71 typedef jboolean (*verify_byte_codes_fn_t)(JNIEnv *, jclass, char *, jint); |
2317 types = 1 << JVM_CONSTANT_InvokeDynamic; | 2318 types = 1 << JVM_CONSTANT_InvokeDynamic; |
2318 break; | 2319 break; |
2319 case Bytecodes::_invokespecial: | 2320 case Bytecodes::_invokespecial: |
2320 types = (1 << JVM_CONSTANT_InterfaceMethodref) | | 2321 types = (1 << JVM_CONSTANT_InterfaceMethodref) | |
2321 (1 << JVM_CONSTANT_Methodref); | 2322 (1 << JVM_CONSTANT_Methodref); |
2323 break; | |
2324 case Bytecodes::_invokestatic: | |
2325 types = (_klass->major_version() < STATIC_METHOD_IN_INTERFACE_MAJOR_VERSION) ? | |
2326 (1 << JVM_CONSTANT_Methodref) : | |
2327 ((1 << JVM_CONSTANT_InterfaceMethodref) | (1 << JVM_CONSTANT_Methodref)); | |
2322 break; | 2328 break; |
2323 default: | 2329 default: |
2324 types = 1 << JVM_CONSTANT_Methodref; | 2330 types = 1 << JVM_CONSTANT_Methodref; |
2325 } | 2331 } |
2326 verify_cp_type(bcs->bci(), index, cp, types, CHECK_VERIFY(this)); | 2332 verify_cp_type(bcs->bci(), index, cp, types, CHECK_VERIFY(this)); |