equal
deleted
inserted
replaced
226 m_klass_non_interface = SystemDictionary::Object_klass(); |
226 m_klass_non_interface = SystemDictionary::Object_klass(); |
227 #ifdef ASSERT |
227 #ifdef ASSERT |
228 { ResourceMark rm; |
228 { ResourceMark rm; |
229 Method* m2 = m_klass_non_interface->vtable()->method_at(vmindex); |
229 Method* m2 = m_klass_non_interface->vtable()->method_at(vmindex); |
230 assert(m->name() == m2->name() && m->signature() == m2->signature(), |
230 assert(m->name() == m2->name() && m->signature() == m2->signature(), |
231 err_msg("at %d, %s != %s", vmindex, |
231 "at %d, %s != %s", vmindex, |
232 m->name_and_sig_as_C_string(), m2->name_and_sig_as_C_string())); |
232 m->name_and_sig_as_C_string(), m2->name_and_sig_as_C_string()); |
233 } |
233 } |
234 #endif //ASSERT |
234 #endif //ASSERT |
235 } |
235 } |
236 if (!m->is_public()) { |
236 if (!m->is_public()) { |
237 assert(m->is_public(), "virtual call must be to public interface method"); |
237 assert(m->is_public(), "virtual call must be to public interface method"); |
343 return (flags & required) == required; |
343 return (flags & required) == required; |
344 } |
344 } |
345 |
345 |
346 |
346 |
347 Symbol* MethodHandles::signature_polymorphic_intrinsic_name(vmIntrinsics::ID iid) { |
347 Symbol* MethodHandles::signature_polymorphic_intrinsic_name(vmIntrinsics::ID iid) { |
348 assert(is_signature_polymorphic_intrinsic(iid), err_msg("iid=%d", iid)); |
348 assert(is_signature_polymorphic_intrinsic(iid), "iid=%d", iid); |
349 switch (iid) { |
349 switch (iid) { |
350 case vmIntrinsics::_invokeBasic: return vmSymbols::invokeBasic_name(); |
350 case vmIntrinsics::_invokeBasic: return vmSymbols::invokeBasic_name(); |
351 case vmIntrinsics::_linkToVirtual: return vmSymbols::linkToVirtual_name(); |
351 case vmIntrinsics::_linkToVirtual: return vmSymbols::linkToVirtual_name(); |
352 case vmIntrinsics::_linkToStatic: return vmSymbols::linkToStatic_name(); |
352 case vmIntrinsics::_linkToStatic: return vmSymbols::linkToStatic_name(); |
353 case vmIntrinsics::_linkToSpecial: return vmSymbols::linkToSpecial_name(); |
353 case vmIntrinsics::_linkToSpecial: return vmSymbols::linkToSpecial_name(); |
363 case vmIntrinsics::_linkToVirtual: return JVM_REF_invokeVirtual; |
363 case vmIntrinsics::_linkToVirtual: return JVM_REF_invokeVirtual; |
364 case vmIntrinsics::_linkToStatic: return JVM_REF_invokeStatic; |
364 case vmIntrinsics::_linkToStatic: return JVM_REF_invokeStatic; |
365 case vmIntrinsics::_linkToSpecial: return JVM_REF_invokeSpecial; |
365 case vmIntrinsics::_linkToSpecial: return JVM_REF_invokeSpecial; |
366 case vmIntrinsics::_linkToInterface: return JVM_REF_invokeInterface; |
366 case vmIntrinsics::_linkToInterface: return JVM_REF_invokeInterface; |
367 } |
367 } |
368 assert(false, err_msg("iid=%d", iid)); |
368 assert(false, "iid=%d", iid); |
369 return 0; |
369 return 0; |
370 } |
370 } |
371 |
371 |
372 vmIntrinsics::ID MethodHandles::signature_polymorphic_name_id(Symbol* name) { |
372 vmIntrinsics::ID MethodHandles::signature_polymorphic_name_id(Symbol* name) { |
373 vmSymbols::SID name_id = vmSymbols::find_sid(name); |
373 vmSymbols::SID name_id = vmSymbols::find_sid(name); |
696 link_info, THREAD); |
696 link_info, THREAD); |
697 } else if (ref_kind == JVM_REF_invokeVirtual) { |
697 } else if (ref_kind == JVM_REF_invokeVirtual) { |
698 LinkResolver::resolve_virtual_call(result, Handle(), defc, |
698 LinkResolver::resolve_virtual_call(result, Handle(), defc, |
699 link_info, false, THREAD); |
699 link_info, false, THREAD); |
700 } else { |
700 } else { |
701 assert(false, err_msg("ref_kind=%d", ref_kind)); |
701 assert(false, "ref_kind=%d", ref_kind); |
702 } |
702 } |
703 if (HAS_PENDING_EXCEPTION) { |
703 if (HAS_PENDING_EXCEPTION) { |
704 return empty; |
704 return empty; |
705 } |
705 } |
706 } |
706 } |