comparison src/share/vm/classfile/verifier.cpp @ 12142:76482cbba706

8016764: JVM does not prohibit invokespecial in c.f.v 51.0 that invokes default interface method in c.f.v 52.0 Summary: Check cfv before allowing invokespecial call to default method. Reviewed-by: kamg, acorn, dholmes
author hseigel
date Thu, 29 Aug 2013 10:33:13 -0400
parents 92ef81e2f571
children 3a1df0dce3e5
comparison
equal deleted inserted replaced
12141:cc56f122f3f7 12142:76482cbba706
2316 break; 2316 break;
2317 case Bytecodes::_invokedynamic: 2317 case Bytecodes::_invokedynamic:
2318 types = 1 << JVM_CONSTANT_InvokeDynamic; 2318 types = 1 << JVM_CONSTANT_InvokeDynamic;
2319 break; 2319 break;
2320 case Bytecodes::_invokespecial: 2320 case Bytecodes::_invokespecial:
2321 types = (1 << JVM_CONSTANT_InterfaceMethodref) |
2322 (1 << JVM_CONSTANT_Methodref);
2323 break;
2324 case Bytecodes::_invokestatic: 2321 case Bytecodes::_invokestatic:
2325 types = (_klass->major_version() < STATIC_METHOD_IN_INTERFACE_MAJOR_VERSION) ? 2322 types = (_klass->major_version() < STATIC_METHOD_IN_INTERFACE_MAJOR_VERSION) ?
2326 (1 << JVM_CONSTANT_Methodref) : 2323 (1 << JVM_CONSTANT_Methodref) :
2327 ((1 << JVM_CONSTANT_InterfaceMethodref) | (1 << JVM_CONSTANT_Methodref)); 2324 ((1 << JVM_CONSTANT_InterfaceMethodref) | (1 << JVM_CONSTANT_Methodref));
2328 break; 2325 break;