881 |
881 |
882 JavaValue result(T_VOID); |
882 JavaValue result(T_VOID); |
883 JavaCalls::call_static(&result, klass, vmSymbolHandles::initializeSystemClass_name(), |
883 JavaCalls::call_static(&result, klass, vmSymbolHandles::initializeSystemClass_name(), |
884 vmSymbolHandles::void_method_signature(), CHECK); |
884 vmSymbolHandles::void_method_signature(), CHECK); |
885 } |
885 } |
|
886 |
|
887 #ifdef KERNEL |
|
888 static void set_jkernel_boot_classloader_hook(TRAPS) { |
|
889 klassOop k = SystemDictionary::sun_jkernel_DownloadManager_klass(); |
|
890 instanceKlassHandle klass (THREAD, k); |
|
891 |
|
892 if (k == NULL) { |
|
893 // sun.jkernel.DownloadManager may not present in the JDK; just return |
|
894 return; |
|
895 } |
|
896 |
|
897 JavaValue result(T_VOID); |
|
898 JavaCalls::call_static(&result, klass, vmSymbolHandles::setBootClassLoaderHook_name(), |
|
899 vmSymbolHandles::void_method_signature(), CHECK); |
|
900 } |
|
901 #endif // KERNEL |
886 |
902 |
887 static void reset_vm_info_property(TRAPS) { |
903 static void reset_vm_info_property(TRAPS) { |
888 // the vm info string |
904 // the vm info string |
889 ResourceMark rm(THREAD); |
905 ResourceMark rm(THREAD); |
890 const char *vm_info = VM_Version::vm_info_string(); |
906 const char *vm_info = VM_Version::vm_info_string(); |
3100 SystemDictionary::compute_java_system_loader(THREAD); |
3116 SystemDictionary::compute_java_system_loader(THREAD); |
3101 if (HAS_PENDING_EXCEPTION) { |
3117 if (HAS_PENDING_EXCEPTION) { |
3102 vm_exit_during_initialization(Handle(THREAD, PENDING_EXCEPTION)); |
3118 vm_exit_during_initialization(Handle(THREAD, PENDING_EXCEPTION)); |
3103 } |
3119 } |
3104 |
3120 |
|
3121 #ifdef KERNEL |
|
3122 if (JDK_Version::is_gte_jdk17x_version()) { |
|
3123 set_jkernel_boot_classloader_hook(THREAD); |
|
3124 } |
|
3125 #endif // KERNEL |
|
3126 |
3105 #ifndef SERIALGC |
3127 #ifndef SERIALGC |
3106 // Support for ConcurrentMarkSweep. This should be cleaned up |
3128 // Support for ConcurrentMarkSweep. This should be cleaned up |
3107 // and better encapsulated. The ugly nested if test would go away |
3129 // and better encapsulated. The ugly nested if test would go away |
3108 // once things are properly refactored. XXX YSR |
3130 // once things are properly refactored. XXX YSR |
3109 if (UseConcMarkSweepGC || UseG1GC) { |
3131 if (UseConcMarkSweepGC || UseG1GC) { |