src/hotspot/share/classfile/systemDictionary.cpp
changeset 50771 9ca95539747d
parent 50735 2f2af62dfac7
child 51070 2f4c3cac8556
equal deleted inserted replaced
50770:c545db4fc9bd 50771:9ca95539747d
  2707   java_lang_invoke_MemberName::set_name (mname(), name_str());
  2707   java_lang_invoke_MemberName::set_name (mname(), name_str());
  2708   java_lang_invoke_MemberName::set_type (mname(), signature_str());
  2708   java_lang_invoke_MemberName::set_type (mname(), signature_str());
  2709   java_lang_invoke_MemberName::set_flags(mname(), MethodHandles::ref_kind_to_flags(ref_kind));
  2709   java_lang_invoke_MemberName::set_flags(mname(), MethodHandles::ref_kind_to_flags(ref_kind));
  2710 
  2710 
  2711   if (ref_kind == JVM_REF_invokeVirtual &&
  2711   if (ref_kind == JVM_REF_invokeVirtual &&
  2712       callee->name() == vmSymbols::java_lang_invoke_MethodHandle() &&
  2712       MethodHandles::is_signature_polymorphic_public_name(callee, name)) {
  2713       (name == vmSymbols::invoke_name() || name == vmSymbols::invokeExact_name())) {
  2713     // Skip resolution for public signature polymorphic methods such as
  2714     // Skip resolution for j.l.i.MethodHandle.invoke()/invokeExact().
  2714     // j.l.i.MethodHandle.invoke()/invokeExact() and those on VarHandle
  2715     // They are public signature polymorphic methods, but require appendix argument
  2715     // They require appendix argument which MemberName resolution doesn't handle.
  2716     // which MemberName resolution doesn't handle. There's special logic on JDK side to handle them
  2716     // There's special logic on JDK side to handle them
  2717     // (see MethodHandles.linkMethodHandleConstant() and MethodHandles.findVirtualForMH()).
  2717     // (see MethodHandles.linkMethodHandleConstant() and MethodHandles.findVirtualForMH()).
  2718   } else {
  2718   } else {
  2719     MethodHandles::resolve_MemberName(mname, caller, /*speculative_resolve*/false, CHECK_(empty));
  2719     MethodHandles::resolve_MemberName(mname, caller, /*speculative_resolve*/false, CHECK_(empty));
  2720   }
  2720   }
  2721 
  2721