Mercurial > hg > truffle
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; |