< prev index next >

src/hotspot/share/prims/jvm.cpp

Print this page

*** 3731,3740 **** --- 3731,3763 ---- Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve(cls)); assert(k->is_klass(), "just checking"); HeapShared::initialize_from_archived_subgraph(k); JVM_END + JVM_ENTRY_NO_ENV(jlong, JVM_GetRandomSeedForCDSDump()) + JVMWrapper("JVM_GetRandomSeedForCDSDump"); + if (DumpSharedSpaces) { + const char* release = Abstract_VM_Version::vm_release(); + const char* dbg_level = Abstract_VM_Version::jdk_debug_level(); + const char* version = VM_Version::internal_vm_info_string(); + jlong seed = (jlong)(java_lang_String::hash_code((const jbyte*)release, (int)strlen(release)) ^ + java_lang_String::hash_code((const jbyte*)dbg_level, (int)strlen(dbg_level)) ^ + java_lang_String::hash_code((const jbyte*)version, (int)strlen(version))); + seed += (jlong)Abstract_VM_Version::vm_major_version(); + seed += (jlong)Abstract_VM_Version::vm_minor_version(); + seed += (jlong)Abstract_VM_Version::vm_security_version(); + seed += (jlong)Abstract_VM_Version::vm_patch_version(); + if (seed == 0) { // don't let this ever be zero. + seed = 0x87654321; + } + log_debug(cds)("JVM_GetRandomSeedForCDSDump() = " JLONG_FORMAT, seed); + return seed; + } else { + return 0; + } + JVM_END + // Returns an array of all live Thread objects (VM internal JavaThreads, // jvmti agent threads, and JNI attaching threads are skipped) // See CR 6404306 regarding JNI attaching threads JVM_ENTRY(jobjectArray, JVM_GetAllThreads(JNIEnv *env, jclass dummy)) ResourceMark rm(THREAD);
< prev index next >