< prev index next >

src/hotspot/share/classfile/systemDictionary.cpp

Print this page

        

*** 2782,2792 **** // Skip resolution for j.l.i.MethodHandle.invoke()/invokeExact(). // They are public signature polymorphic methods, but require appendix argument // which MemberName resolution doesn't handle. There's special logic on JDK side to handle them // (see MethodHandles.linkMethodHandleConstant() and MethodHandles.findVirtualForMH()). } else { ! MethodHandles::resolve_MemberName(mname, caller, CHECK_(empty)); } // After method/field resolution succeeded, it's safe to resolve MH signature as well. Handle type = MethodHandles::resolve_MemberName_type(mname, caller, CHECK_(empty)); --- 2782,2796 ---- // Skip resolution for j.l.i.MethodHandle.invoke()/invokeExact(). // They are public signature polymorphic methods, but require appendix argument // which MemberName resolution doesn't handle. There's special logic on JDK side to handle them // (see MethodHandles.linkMethodHandleConstant() and MethodHandles.findVirtualForMH()). } else { ! Handle resolved = MethodHandles::resolve_MemberName(mname, caller, CHECK_(empty)); ! if (resolved.is_null()) { ! // Resolution failure should already trigger an exception. ! THROW_MSG_(vmSymbols::java_lang_InternalError(), "empty", empty); ! } } // After method/field resolution succeeded, it's safe to resolve MH signature as well. Handle type = MethodHandles::resolve_MemberName_type(mname, caller, CHECK_(empty));
< prev index next >