comparison src/share/vm/classfile/systemDictionary.cpp @ 6822:f6b0eb4e44cf

7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path Reviewed-by: jrose, kvn
author twisti
date Mon, 01 Oct 2012 14:50:10 -0700
parents 2a48c84f1d04
children 6e5a59a8e4a7 65d07d9ee446 dd2b66d09ccd
comparison
equal deleted inserted replaced
6811:1b582b1bf7cb 6822:f6b0eb4e44cf
2427 } 2427 }
2428 2428
2429 methodHandle SystemDictionary::find_method_handle_invoker(Symbol* name, 2429 methodHandle SystemDictionary::find_method_handle_invoker(Symbol* name,
2430 Symbol* signature, 2430 Symbol* signature,
2431 KlassHandle accessing_klass, 2431 KlassHandle accessing_klass,
2432 Handle* appendix_result, 2432 Handle *appendix_result,
2433 Handle *method_type_result,
2433 TRAPS) { 2434 TRAPS) {
2434 methodHandle empty; 2435 methodHandle empty;
2435 assert(EnableInvokeDynamic, ""); 2436 assert(EnableInvokeDynamic, "");
2436 assert(!THREAD->is_Compiler_thread(), ""); 2437 assert(!THREAD->is_Compiler_thread(), "");
2437 Handle method_type = 2438 Handle method_type =
2459 SystemDictionary::MethodHandleNatives_klass(), 2460 SystemDictionary::MethodHandleNatives_klass(),
2460 vmSymbols::linkMethod_name(), 2461 vmSymbols::linkMethod_name(),
2461 vmSymbols::linkMethod_signature(), 2462 vmSymbols::linkMethod_signature(),
2462 &args, CHECK_(empty)); 2463 &args, CHECK_(empty));
2463 Handle mname(THREAD, (oop) result.get_jobject()); 2464 Handle mname(THREAD, (oop) result.get_jobject());
2465 (*method_type_result) = method_type;
2464 return unpack_method_and_appendix(mname, appendix_box, appendix_result, THREAD); 2466 return unpack_method_and_appendix(mname, appendix_box, appendix_result, THREAD);
2465 } 2467 }
2466 2468
2467 2469
2468 // Ask Java code to find or construct a java.lang.invoke.MethodType for the given 2470 // Ask Java code to find or construct a java.lang.invoke.MethodType for the given
2605 // name and signature, as interpreted relative to the given class loader. 2607 // name and signature, as interpreted relative to the given class loader.
2606 methodHandle SystemDictionary::find_dynamic_call_site_invoker(KlassHandle caller, 2608 methodHandle SystemDictionary::find_dynamic_call_site_invoker(KlassHandle caller,
2607 Handle bootstrap_specifier, 2609 Handle bootstrap_specifier,
2608 Symbol* name, 2610 Symbol* name,
2609 Symbol* type, 2611 Symbol* type,
2610 Handle* appendix_result, 2612 Handle *appendix_result,
2613 Handle *method_type_result,
2611 TRAPS) { 2614 TRAPS) {
2612 methodHandle empty; 2615 methodHandle empty;
2613 Handle bsm, info; 2616 Handle bsm, info;
2614 if (java_lang_invoke_MethodHandle::is_instance(bootstrap_specifier())) { 2617 if (java_lang_invoke_MethodHandle::is_instance(bootstrap_specifier())) {
2615 bsm = bootstrap_specifier; 2618 bsm = bootstrap_specifier;
2648 SystemDictionary::MethodHandleNatives_klass(), 2651 SystemDictionary::MethodHandleNatives_klass(),
2649 vmSymbols::linkCallSite_name(), 2652 vmSymbols::linkCallSite_name(),
2650 vmSymbols::linkCallSite_signature(), 2653 vmSymbols::linkCallSite_signature(),
2651 &args, CHECK_(empty)); 2654 &args, CHECK_(empty));
2652 Handle mname(THREAD, (oop) result.get_jobject()); 2655 Handle mname(THREAD, (oop) result.get_jobject());
2656 (*method_type_result) = method_type;
2653 return unpack_method_and_appendix(mname, appendix_box, appendix_result, THREAD); 2657 return unpack_method_and_appendix(mname, appendix_box, appendix_result, THREAD);
2654 } 2658 }
2655 2659
2656 // Since the identity hash code for symbols changes when the symbols are 2660 // Since the identity hash code for symbols changes when the symbols are
2657 // moved from the regular perm gen (hash in the mark word) to the shared 2661 // moved from the regular perm gen (hash in the mark word) to the shared