Mercurial > hg > truffle
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 |