142 template(reflect_DelegatingClassLoader_klass, sun_reflect_DelegatingClassLoader, Opt) \ |
142 template(reflect_DelegatingClassLoader_klass, sun_reflect_DelegatingClassLoader, Opt) \ |
143 template(reflect_ConstantPool_klass, sun_reflect_ConstantPool, Opt_Only_JDK15) \ |
143 template(reflect_ConstantPool_klass, sun_reflect_ConstantPool, Opt_Only_JDK15) \ |
144 template(reflect_UnsafeStaticFieldAccessorImpl_klass, sun_reflect_UnsafeStaticFieldAccessorImpl, Opt_Only_JDK15) \ |
144 template(reflect_UnsafeStaticFieldAccessorImpl_klass, sun_reflect_UnsafeStaticFieldAccessorImpl, Opt_Only_JDK15) \ |
145 \ |
145 \ |
146 /* support for dynamic typing; it's OK if these are NULL in earlier JDKs */ \ |
146 /* support for dynamic typing; it's OK if these are NULL in earlier JDKs */ \ |
147 template(MethodHandle_klass, java_dyn_MethodHandle, Pre_JSR292) \ |
147 template(MethodHandle_klass, java_lang_invoke_MethodHandle, Pre_JSR292) \ |
148 template(MemberName_klass, java_dyn_MemberName, Pre_JSR292) \ |
148 template(MemberName_klass, java_lang_invoke_MemberName, Pre_JSR292) \ |
149 template(MethodHandleImpl_klass, java_dyn_MethodHandleImpl, Pre_JSR292) /* AllowTransitionalJSR292 ONLY */ \ |
149 template(MethodHandleImpl_klass, sun_dyn_MethodHandleImpl, Opt) /* AllowTransitionalJSR292 ONLY */ \ |
150 template(MethodHandleNatives_klass, java_dyn_MethodHandleNatives, Pre_JSR292) \ |
150 template(MethodHandleNatives_klass, java_lang_invoke_MethodHandleNatives, Pre_JSR292) \ |
151 template(AdapterMethodHandle_klass, java_dyn_AdapterMethodHandle, Pre_JSR292) \ |
151 template(AdapterMethodHandle_klass, java_lang_invoke_AdapterMethodHandle, Pre_JSR292) \ |
152 template(BoundMethodHandle_klass, java_dyn_BoundMethodHandle, Pre_JSR292) \ |
152 template(BoundMethodHandle_klass, java_lang_invoke_BoundMethodHandle, Pre_JSR292) \ |
153 template(DirectMethodHandle_klass, java_dyn_DirectMethodHandle, Pre_JSR292) \ |
153 template(DirectMethodHandle_klass, java_lang_invoke_DirectMethodHandle, Pre_JSR292) \ |
154 template(MethodType_klass, java_dyn_MethodType, Pre_JSR292) \ |
154 template(MethodType_klass, java_lang_invoke_MethodType, Pre_JSR292) \ |
155 template(MethodTypeForm_klass, java_dyn_MethodTypeForm, Pre_JSR292) \ |
155 template(MethodTypeForm_klass, java_lang_invoke_MethodTypeForm, Pre_JSR292) \ |
156 template(WrongMethodTypeException_klass, java_dyn_WrongMethodTypeException, Pre_JSR292) \ |
156 template(WrongMethodTypeException_klass, java_lang_invoke_WrongMethodTypeException, Pre_JSR292) \ |
157 template(Linkage_klass, java_dyn_Linkage, Pre_JSR292) \ |
157 template(Linkage_klass, java_lang_invoke_Linkage, Opt) /* AllowTransitionalJSR292 ONLY */ \ |
158 template(CallSite_klass, java_dyn_CallSite, Pre_JSR292) \ |
158 template(CallSite_klass, java_lang_invoke_CallSite, Pre_JSR292) \ |
159 /* Note: MethodHandle must be first, and CallSite last in group */ \ |
159 /* Note: MethodHandle must be first, and CallSite last in group */ \ |
160 \ |
160 \ |
161 template(StringBuffer_klass, java_lang_StringBuffer, Pre) \ |
161 template(StringBuffer_klass, java_lang_StringBuffer, Pre) \ |
162 template(StringBuilder_klass, java_lang_StringBuilder, Pre) \ |
162 template(StringBuilder_klass, java_lang_StringBuilder, Pre) \ |
163 \ |
163 \ |
480 Handle loader2, TRAPS); |
480 Handle loader2, TRAPS); |
481 static char* check_signature_loaders(Symbol* signature, Handle loader1, |
481 static char* check_signature_loaders(Symbol* signature, Handle loader1, |
482 Handle loader2, bool is_method, TRAPS); |
482 Handle loader2, bool is_method, TRAPS); |
483 |
483 |
484 // JSR 292 |
484 // JSR 292 |
485 // find the java.dyn.MethodHandles::invoke method for a given signature |
485 // find the java.lang.invoke.MethodHandles::invoke method for a given signature |
486 static methodOop find_method_handle_invoke(Symbol* name, |
486 static methodOop find_method_handle_invoke(Symbol* name, |
487 Symbol* signature, |
487 Symbol* signature, |
488 KlassHandle accessing_klass, |
488 KlassHandle accessing_klass, |
489 TRAPS); |
489 TRAPS); |
490 // ask Java to compute a java.dyn.MethodType object for a given signature |
490 // ask Java to compute a java.lang.invoke.MethodType object for a given signature |
491 static Handle find_method_handle_type(Symbol* signature, |
491 static Handle find_method_handle_type(Symbol* signature, |
492 KlassHandle accessing_klass, |
492 KlassHandle accessing_klass, |
493 bool for_invokeGeneric, |
493 bool for_invokeGeneric, |
494 bool& return_bcp_flag, |
494 bool& return_bcp_flag, |
495 TRAPS); |
495 TRAPS); |
496 // ask Java to compute a java.dyn.MethodHandle object for a given CP entry |
496 // ask Java to compute a java.lang.invoke.MethodHandle object for a given CP entry |
497 static Handle link_method_handle_constant(KlassHandle caller, |
497 static Handle link_method_handle_constant(KlassHandle caller, |
498 int ref_kind, //e.g., JVM_REF_invokeVirtual |
498 int ref_kind, //e.g., JVM_REF_invokeVirtual |
499 KlassHandle callee, |
499 KlassHandle callee, |
500 Symbol* name, |
500 Symbol* name, |
501 Symbol* signature, |
501 Symbol* signature, |