140 template(BoundMethodHandle_klass, sun_dyn_BoundMethodHandle, Opt) \ |
140 template(BoundMethodHandle_klass, sun_dyn_BoundMethodHandle, Opt) \ |
141 template(DirectMethodHandle_klass, sun_dyn_DirectMethodHandle, Opt) \ |
141 template(DirectMethodHandle_klass, sun_dyn_DirectMethodHandle, Opt) \ |
142 template(MethodType_klass, java_dyn_MethodType, Opt) \ |
142 template(MethodType_klass, java_dyn_MethodType, Opt) \ |
143 template(MethodTypeForm_klass, java_dyn_MethodTypeForm, Opt) \ |
143 template(MethodTypeForm_klass, java_dyn_MethodTypeForm, Opt) \ |
144 template(WrongMethodTypeException_klass, java_dyn_WrongMethodTypeException, Opt) \ |
144 template(WrongMethodTypeException_klass, java_dyn_WrongMethodTypeException, Opt) \ |
|
145 template(Linkage_klass, java_dyn_Linkage, Opt) \ |
|
146 template(CallSite_klass, java_dyn_CallSite, Opt) \ |
|
147 template(CallSiteImpl_klass, sun_dyn_CallSiteImpl, Opt) \ |
|
148 template(Dynamic_klass, java_dyn_Dynamic, Opt) \ |
|
149 /* Note: MethodHandle must be first, and Dynamic last in group */ \ |
|
150 \ |
145 template(vector_klass, java_util_Vector, Pre) \ |
151 template(vector_klass, java_util_Vector, Pre) \ |
146 template(hashtable_klass, java_util_Hashtable, Pre) \ |
152 template(hashtable_klass, java_util_Hashtable, Pre) \ |
147 template(stringBuffer_klass, java_lang_StringBuffer, Pre) \ |
153 template(stringBuffer_klass, java_lang_StringBuffer, Pre) \ |
148 \ |
154 \ |
149 /* It's NULL in non-1.4 JDKs. */ \ |
155 /* It's NULL in non-1.4 JDKs. */ \ |
464 // ask Java to compute the java.dyn.MethodType object for a given signature |
470 // ask Java to compute the java.dyn.MethodType object for a given signature |
465 static Handle compute_method_handle_type(symbolHandle signature, |
471 static Handle compute_method_handle_type(symbolHandle signature, |
466 Handle class_loader, |
472 Handle class_loader, |
467 Handle protection_domain, |
473 Handle protection_domain, |
468 TRAPS); |
474 TRAPS); |
|
475 // ask Java to create a dynamic call site, while linking an invokedynamic op |
|
476 static Handle make_dynamic_call_site(KlassHandle caller, |
|
477 int caller_method_idnum, |
|
478 int caller_bci, |
|
479 symbolHandle name, |
|
480 methodHandle mh_invoke, |
|
481 TRAPS); |
|
482 |
|
483 // coordinate with Java about bootstrap methods |
|
484 static Handle find_bootstrap_method(KlassHandle caller, |
|
485 // This argument is non-null only when a |
|
486 // classfile attribute has been found: |
|
487 KlassHandle search_bootstrap_klass, |
|
488 TRAPS); |
|
489 |
469 // Utility for printing loader "name" as part of tracing constraints |
490 // Utility for printing loader "name" as part of tracing constraints |
470 static const char* loader_name(oop loader) { |
491 static const char* loader_name(oop loader) { |
471 return ((loader) == NULL ? "<bootloader>" : |
492 return ((loader) == NULL ? "<bootloader>" : |
472 instanceKlass::cast((loader)->klass())->name()->as_C_string() ); |
493 instanceKlass::cast((loader)->klass())->name()->as_C_string() ); |
473 } |
494 } |