231 THROW_MSG_(vmSymbols::java_lang_InternalError(), "appendix", empty); |
231 THROW_MSG_(vmSymbols::java_lang_InternalError(), "appendix", empty); |
232 } |
232 } |
233 methodHandle m = info.resolved_method(); |
233 methodHandle m = info.resolved_method(); |
234 KlassHandle defc = info.resolved_klass(); |
234 KlassHandle defc = info.resolved_klass(); |
235 int vmindex = -1; |
235 int vmindex = -1; |
236 if (defc->is_interface() && Klass::cast(m->method_holder())->is_interface()) { |
236 if (defc->is_interface() && m->method_holder()->is_interface()) { |
237 // LinkResolver does not report itable indexes! (fix this?) |
237 // LinkResolver does not report itable indexes! (fix this?) |
238 vmindex = klassItable::compute_itable_index(m()); |
238 vmindex = klassItable::compute_itable_index(m()); |
239 } else if (m->can_be_statically_bound()) { |
239 } else if (m->can_be_statically_bound()) { |
240 // LinkResolver reports vtable index even for final methods! |
240 // LinkResolver reports vtable index even for final methods! |
241 vmindex = Method::nonvirtual_vtable_index; |
241 vmindex = Method::nonvirtual_vtable_index; |
747 assert(vmtarget->is_method(), "method or constructor vmtarget is Method*"); |
747 assert(vmtarget->is_method(), "method or constructor vmtarget is Method*"); |
748 methodHandle m(THREAD, (Method*)vmtarget); |
748 methodHandle m(THREAD, (Method*)vmtarget); |
749 DEBUG_ONLY(vmtarget = NULL); // safety |
749 DEBUG_ONLY(vmtarget = NULL); // safety |
750 if (m.is_null()) break; |
750 if (m.is_null()) break; |
751 if (!have_defc) { |
751 if (!have_defc) { |
752 Klass* defc = m->method_holder(); |
752 InstanceKlass* defc = m->method_holder(); |
753 java_lang_invoke_MemberName::set_clazz(mname(), Klass::cast(defc)->java_mirror()); |
753 java_lang_invoke_MemberName::set_clazz(mname(), defc->java_mirror()); |
754 } |
754 } |
755 if (!have_name) { |
755 if (!have_name) { |
756 //not java_lang_String::create_from_symbol; let's intern member names |
756 //not java_lang_String::create_from_symbol; let's intern member names |
757 Handle name = StringTable::intern(m->name(), CHECK); |
757 Handle name = StringTable::intern(m->name(), CHECK); |
758 java_lang_invoke_MemberName::set_name(mname(), name()); |
758 java_lang_invoke_MemberName::set_name(mname(), name()); |