3830 Handle impl_method_member_oop(THREAD, JNIHandles::resolve_non_null(implMethodMember)); 3831 assert(java_lang_invoke_MemberName::is_method(impl_method_member_oop()), "must be"); 3832 Method* m = java_lang_invoke_MemberName::vmtarget(impl_method_member_oop()); 3833 3834 Handle instantiated_method_type_oop(THREAD, JNIHandles::resolve_non_null(instantiatedMethodType)); 3835 Symbol* instantiated_method_type = java_lang_invoke_MethodType::as_signature(instantiated_method_type_oop(), true); 3836 3837 InstanceKlass* lambda_ik = SystemDictionaryShared::get_shared_lambda_proxy_class(caller_ik, invoked_name, invoked_type, 3838 method_type, m, instantiated_method_type); 3839 jclass jcls = NULL; 3840 if (lambda_ik != NULL) { 3841 InstanceKlass* loaded_lambda = SystemDictionaryShared::prepare_shared_lambda_proxy_class(lambda_ik, caller_ik, initialize, THREAD); 3842 jcls = loaded_lambda == NULL ? NULL : (jclass) JNIHandles::make_local(THREAD, loaded_lambda->java_mirror()); 3843 } 3844 return jcls; 3845 #else 3846 return NULL; 3847 #endif // INCLUDE_CDS 3848 JVM_END 3849 3850 JVM_ENTRY(jboolean, JVM_IsCDSDumpingEnabled(JNIEnv* env)) 3851 JVMWrapper("JVM_IsCDSDumpingEnable"); 3852 return DynamicDumpSharedSpaces; 3853 JVM_END 3854 3855 JVM_ENTRY(jboolean, JVM_IsCDSSharingEnabled(JNIEnv* env)) 3856 JVMWrapper("JVM_IsCDSSharingEnable"); 3857 return UseSharedSpaces; 3858 JVM_END 3859 3860 JVM_ENTRY_NO_ENV(jlong, JVM_GetRandomSeedForCDSDump()) 3861 JVMWrapper("JVM_GetRandomSeedForCDSDump"); 3862 if (DumpSharedSpaces) { 3863 const char* release = Abstract_VM_Version::vm_release(); 3864 const char* dbg_level = Abstract_VM_Version::jdk_debug_level(); 3865 const char* version = VM_Version::internal_vm_info_string(); 3866 jlong seed = (jlong)(java_lang_String::hash_code((const jbyte*)release, (int)strlen(release)) ^ 3867 java_lang_String::hash_code((const jbyte*)dbg_level, (int)strlen(dbg_level)) ^ 3868 java_lang_String::hash_code((const jbyte*)version, (int)strlen(version))); 3869 seed += (jlong)Abstract_VM_Version::vm_major_version(); | 3830 Handle impl_method_member_oop(THREAD, JNIHandles::resolve_non_null(implMethodMember)); 3831 assert(java_lang_invoke_MemberName::is_method(impl_method_member_oop()), "must be"); 3832 Method* m = java_lang_invoke_MemberName::vmtarget(impl_method_member_oop()); 3833 3834 Handle instantiated_method_type_oop(THREAD, JNIHandles::resolve_non_null(instantiatedMethodType)); 3835 Symbol* instantiated_method_type = java_lang_invoke_MethodType::as_signature(instantiated_method_type_oop(), true); 3836 3837 InstanceKlass* lambda_ik = SystemDictionaryShared::get_shared_lambda_proxy_class(caller_ik, invoked_name, invoked_type, 3838 method_type, m, instantiated_method_type); 3839 jclass jcls = NULL; 3840 if (lambda_ik != NULL) { 3841 InstanceKlass* loaded_lambda = SystemDictionaryShared::prepare_shared_lambda_proxy_class(lambda_ik, caller_ik, initialize, THREAD); 3842 jcls = loaded_lambda == NULL ? NULL : (jclass) JNIHandles::make_local(THREAD, loaded_lambda->java_mirror()); 3843 } 3844 return jcls; 3845 #else 3846 return NULL; 3847 #endif // INCLUDE_CDS 3848 JVM_END 3849 3850 JVM_ENTRY(void, JVM_CDSTraceResolve(JNIEnv* env, jclass ignore, jstring line)) 3851 #if INCLUDE_CDS 3852 if (line != NULL && DumpLoadedClassList != NULL && classlist_file->is_open()) { 3853 ResourceMark rm(THREAD); 3854 Handle h_line (THREAD, JNIHandles::resolve_non_null(line)); 3855 char* c_line = java_lang_String::as_utf8_string(h_line()); 3856 classlist_file->print_cr("%s", c_line); 3857 } 3858 #endif // INCLUDE_CDS 3859 JVM_END 3860 3861 JVM_ENTRY(jboolean, JVM_IsCDSDumpingEnabled(JNIEnv* env)) 3862 JVMWrapper("JVM_IsCDSDumpingEnable"); 3863 return DynamicDumpSharedSpaces; 3864 JVM_END 3865 3866 JVM_ENTRY(jboolean, JVM_IsCDSSharingEnabled(JNIEnv* env)) 3867 JVMWrapper("JVM_IsCDSSharingEnable"); 3868 return UseSharedSpaces; 3869 JVM_END 3870 3871 JVM_ENTRY_NO_ENV(jlong, JVM_GetRandomSeedForCDSDump()) 3872 JVMWrapper("JVM_GetRandomSeedForCDSDump"); 3873 if (DumpSharedSpaces) { 3874 const char* release = Abstract_VM_Version::vm_release(); 3875 const char* dbg_level = Abstract_VM_Version::jdk_debug_level(); 3876 const char* version = VM_Version::internal_vm_info_string(); 3877 jlong seed = (jlong)(java_lang_String::hash_code((const jbyte*)release, (int)strlen(release)) ^ 3878 java_lang_String::hash_code((const jbyte*)dbg_level, (int)strlen(dbg_level)) ^ 3879 java_lang_String::hash_code((const jbyte*)version, (int)strlen(version))); 3880 seed += (jlong)Abstract_VM_Version::vm_major_version(); |