comparison src/share/vm/prims/jvm.cpp @ 1059:389049f3f393

6858164: invokedynamic code needs some cleanup (post-6655638) Summary: Fix several crashers, remove needless paths for boxed-style bootstrap method call, refactor & simplify APIs for rewriter constantPoolOop, remove sun.dyn.CallSiteImpl Reviewed-by: kvn
author jrose
date Fri, 30 Oct 2009 16:22:59 -0700
parents ad6585fd4087
children 933a3e806ce6 4ce7240d622c
comparison
equal deleted inserted replaced
1058:73a726751507 1059:389049f3f393
2255 k = JvmtiThreadState::class_to_verify_considering_redefinition(k, thread); 2255 k = JvmtiThreadState::class_to_verify_considering_redefinition(k, thread);
2256 constantPoolOop cp = instanceKlass::cast(k)->constants(); 2256 constantPoolOop cp = instanceKlass::cast(k)->constants();
2257 switch (cp->tag_at(cp_index).value()) { 2257 switch (cp->tag_at(cp_index).value()) {
2258 case JVM_CONSTANT_InterfaceMethodref: 2258 case JVM_CONSTANT_InterfaceMethodref:
2259 case JVM_CONSTANT_Methodref: 2259 case JVM_CONSTANT_Methodref:
2260 case JVM_CONSTANT_NameAndType: // for invokedynamic
2260 return cp->uncached_name_ref_at(cp_index)->as_utf8(); 2261 return cp->uncached_name_ref_at(cp_index)->as_utf8();
2261 case JVM_CONSTANT_NameAndType:
2262 // for invokedynamic
2263 return cp->nt_name_ref_at(cp_index)->as_utf8();
2264 default: 2262 default:
2265 fatal("JVM_GetCPMethodNameUTF: illegal constant"); 2263 fatal("JVM_GetCPMethodNameUTF: illegal constant");
2266 } 2264 }
2267 ShouldNotReachHere(); 2265 ShouldNotReachHere();
2268 return NULL; 2266 return NULL;
2275 k = JvmtiThreadState::class_to_verify_considering_redefinition(k, thread); 2273 k = JvmtiThreadState::class_to_verify_considering_redefinition(k, thread);
2276 constantPoolOop cp = instanceKlass::cast(k)->constants(); 2274 constantPoolOop cp = instanceKlass::cast(k)->constants();
2277 switch (cp->tag_at(cp_index).value()) { 2275 switch (cp->tag_at(cp_index).value()) {
2278 case JVM_CONSTANT_InterfaceMethodref: 2276 case JVM_CONSTANT_InterfaceMethodref:
2279 case JVM_CONSTANT_Methodref: 2277 case JVM_CONSTANT_Methodref:
2278 case JVM_CONSTANT_NameAndType: // for invokedynamic
2280 return cp->uncached_signature_ref_at(cp_index)->as_utf8(); 2279 return cp->uncached_signature_ref_at(cp_index)->as_utf8();
2281 case JVM_CONSTANT_NameAndType:
2282 // for invokedynamic
2283 return cp->nt_signature_ref_at(cp_index)->as_utf8();
2284 default: 2280 default:
2285 fatal("JVM_GetCPMethodSignatureUTF: illegal constant"); 2281 fatal("JVM_GetCPMethodSignatureUTF: illegal constant");
2286 } 2282 }
2287 ShouldNotReachHere(); 2283 ShouldNotReachHere();
2288 return NULL; 2284 return NULL;