< prev index next >
src/share/vm/jvmci/jvmciCompilerToVM.cpp
Print this page
*** 554,564 ****
Symbol* method_name = method->name();
Symbol* method_signature = method->signature();
if (holder_klass->is_interface()) {
// do link-time resolution to check all access rules.
! LinkInfo link_info(holder_klass, method_name, method_signature, caller_klass, true);
methodHandle resolved_method = LinkResolver::linktime_resolve_interface_method_or_null(link_info);
if (resolved_method.is_null() || resolved_method->is_private()) {
return NULL;
}
assert(recv_klass->is_subtype_of(holder_klass), "");
--- 554,564 ----
Symbol* method_name = method->name();
Symbol* method_signature = method->signature();
if (holder_klass->is_interface()) {
// do link-time resolution to check all access rules.
! LinkInfo link_info(holder_klass, method_name, method_signature, caller_klass);
methodHandle resolved_method = LinkResolver::linktime_resolve_interface_method_or_null(link_info);
if (resolved_method.is_null() || resolved_method->is_private()) {
return NULL;
}
assert(recv_klass->is_subtype_of(holder_klass), "");
*** 566,576 ****
methodHandle sel_method = LinkResolver::lookup_instance_method_in_klasses(recv_klass, resolved_method->name(), resolved_method->signature(), CHECK_AND_CLEAR_0);
oop result = CompilerToVM::get_jvmci_method(sel_method, CHECK_NULL);
return JNIHandles::make_local(THREAD, result);
} else {
// do link-time resolution to check all access rules.
! LinkInfo link_info(holder_klass, method_name, method_signature, caller_klass, true);
methodHandle resolved_method = LinkResolver::linktime_resolve_virtual_method_or_null(link_info);
if (resolved_method.is_null()) {
return NULL;
}
// do actual lookup (see LinkResolver::runtime_resolve_virtual_method)
--- 566,576 ----
methodHandle sel_method = LinkResolver::lookup_instance_method_in_klasses(recv_klass, resolved_method->name(), resolved_method->signature(), CHECK_AND_CLEAR_0);
oop result = CompilerToVM::get_jvmci_method(sel_method, CHECK_NULL);
return JNIHandles::make_local(THREAD, result);
} else {
// do link-time resolution to check all access rules.
! LinkInfo link_info(holder_klass, method_name, method_signature, caller_klass);
methodHandle resolved_method = LinkResolver::linktime_resolve_virtual_method_or_null(link_info);
if (resolved_method.is_null()) {
return NULL;
}
// do actual lookup (see LinkResolver::runtime_resolve_virtual_method)
< prev index next >