< prev index next >

src/share/vm/ci/ciMethod.cpp

Print this page

        

*** 798,808 **** methodHandle m; // Only do exact lookup if receiver klass has been linked. Otherwise, // the vtable has not been setup, and the LinkResolver will fail. if (recv->is_array_klass() || ! InstanceKlass::cast(recv)->is_linked() && !exact_receiver->is_interface()) { if (holder()->is_interface()) { m = LinkResolver::resolve_interface_call_or_null(recv, link_info); } else { m = LinkResolver::resolve_virtual_call_or_null(recv, link_info); } --- 798,808 ---- methodHandle m; // Only do exact lookup if receiver klass has been linked. Otherwise, // the vtable has not been setup, and the LinkResolver will fail. if (recv->is_array_klass() || ! (InstanceKlass::cast(recv)->is_linked() && !exact_receiver->is_interface())) { if (holder()->is_interface()) { m = LinkResolver::resolve_interface_call_or_null(recv, link_info); } else { m = LinkResolver::resolve_virtual_call_or_null(recv, link_info); }
*** 1491,1500 **** --- 1491,1502 ---- } rbase = 1; // skip receiver } break; } + default: + break; } assert(target_sig->count() - rbase == linker_sig->count() - sbase - has_appendix, "argument count mismatch"); int arg_count = target_sig->count() - rbase; for (int i = 0; i < arg_count; i++) { if (!basic_types_match(linker_sig->type_at(sbase + i), target_sig->type_at(rbase + i))) {
< prev index next >