< prev index next >

src/hotspot/share/prims/jvm.cpp

Print this page




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();


< prev index next >