Mercurial > hg > graal-compiler
comparison src/share/vm/interpreter/linkResolver.cpp @ 3461:81d815b05abb
7056328: JSR 292 invocation sometimes fails in adapters for types not on boot class path
Reviewed-by: never
author | jrose |
---|---|
date | Thu, 23 Jun 2011 17:14:06 -0700 |
parents | ba550512d3b2 |
children | 43f9d800f276 |
comparison
equal
deleted
inserted
replaced
3460:e9b51b4bdcc7 | 3461:81d815b05abb |
---|---|
292 | 292 |
293 Symbol* method_name = pool->name_ref_at(index); | 293 Symbol* method_name = pool->name_ref_at(index); |
294 Symbol* method_signature = pool->signature_ref_at(index); | 294 Symbol* method_signature = pool->signature_ref_at(index); |
295 KlassHandle current_klass(THREAD, pool->pool_holder()); | 295 KlassHandle current_klass(THREAD, pool->pool_holder()); |
296 | 296 |
297 if (pool->has_preresolution() | |
298 || (resolved_klass() == SystemDictionary::MethodHandle_klass() && | |
299 methodOopDesc::is_method_handle_invoke_name(method_name))) { | |
300 methodOop result_oop = constantPoolOopDesc::method_at_if_loaded(pool, index); | |
301 if (result_oop != NULL) { | |
302 resolved_method = methodHandle(THREAD, result_oop); | |
303 return; | |
304 } | |
305 } | |
306 | |
297 resolve_method(resolved_method, resolved_klass, method_name, method_signature, current_klass, true, CHECK); | 307 resolve_method(resolved_method, resolved_klass, method_name, method_signature, current_klass, true, CHECK); |
298 } | 308 } |
299 | 309 |
300 void LinkResolver::resolve_dynamic_method(methodHandle& resolved_method, KlassHandle& resolved_klass, constantPoolHandle pool, int index, TRAPS) { | 310 void LinkResolver::resolve_dynamic_method(methodHandle& resolved_method, KlassHandle& resolved_klass, constantPoolHandle pool, int index, TRAPS) { |
301 // The class is java.lang.invoke.MethodHandle | 311 // The class is java.lang.invoke.MethodHandle |