src/share/vm/prims/methodHandles.cpp

changeset 4251
18fb7da42534
parent 4163
19eb999cb72c
child 4278
070d523b96a7
equal deleted inserted replaced
4250:c284cf4781f0 4251:18fb7da42534
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());

mercurial