964
965 Handle main_instance = klass->allocate_instance_handle(CHECK_NH);
966 {
967 JavaValue result(T_VOID);
968 Handle string = java_lang_String::create_from_str("main", CHECK_NH);
969 JavaCalls::call_special(&result,
970 main_instance,
971 klass,
972 vmSymbols::object_initializer_name(),
973 vmSymbols::threadgroup_string_void_signature(),
974 system_instance,
975 string,
976 CHECK_NH);
977 }
978 return main_instance;
979 }
980
981 // Creates the initial Thread
982 static oop create_initial_thread(Handle thread_group, JavaThread* thread,
983 TRAPS) {
984 Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_Thread(), true, CHECK_NULL);
985 instanceKlassHandle klass (THREAD, k);
986 instanceHandle thread_oop = klass->allocate_instance_handle(CHECK_NULL);
987
988 java_lang_Thread::set_thread(thread_oop(), thread);
989 java_lang_Thread::set_priority(thread_oop(), NormPriority);
990 thread->set_threadObj(thread_oop());
991
992 Handle string = java_lang_String::create_from_str("main", CHECK_NULL);
993
994 JavaValue result(T_VOID);
995 JavaCalls::call_special(&result, thread_oop,
996 klass,
997 vmSymbols::object_initializer_name(),
998 vmSymbols::threadgroup_string_void_signature(),
999 thread_group,
1000 string,
1001 CHECK_NULL);
1002 return thread_oop();
1003 }
1004
1005 char java_runtime_name[128] = "";
1006 char java_runtime_version[128] = "";
1007
1008 // extract the JRE name from java.lang.VersionProps.java_runtime_name
1009 static const char* get_java_runtime_name(TRAPS) {
1010 Klass* k = SystemDictionary::find(vmSymbols::java_lang_VersionProps(),
1011 Handle(), Handle(), CHECK_AND_CLEAR_NULL);
1012 fieldDescriptor fd;
|
964
965 Handle main_instance = klass->allocate_instance_handle(CHECK_NH);
966 {
967 JavaValue result(T_VOID);
968 Handle string = java_lang_String::create_from_str("main", CHECK_NH);
969 JavaCalls::call_special(&result,
970 main_instance,
971 klass,
972 vmSymbols::object_initializer_name(),
973 vmSymbols::threadgroup_string_void_signature(),
974 system_instance,
975 string,
976 CHECK_NH);
977 }
978 return main_instance;
979 }
980
981 // Creates the initial Thread
982 static oop create_initial_thread(Handle thread_group, JavaThread* thread,
983 TRAPS) {
984 static const char *initial_thread_name = "main";
985 Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_Thread(), true, CHECK_NULL);
986 instanceKlassHandle klass (THREAD, k);
987 instanceHandle thread_oop = klass->allocate_instance_handle(CHECK_NULL);
988
989 java_lang_Thread::set_thread(thread_oop(), thread);
990 java_lang_Thread::set_priority(thread_oop(), NormPriority);
991 thread->set_threadObj(thread_oop());
992 thread->set_native_thread_name(initial_thread_name);
993
994 Handle string = java_lang_String::create_from_str(initial_thread_name, CHECK_NULL);
995
996 JavaValue result(T_VOID);
997 JavaCalls::call_special(&result, thread_oop,
998 klass,
999 vmSymbols::object_initializer_name(),
1000 vmSymbols::threadgroup_string_void_signature(),
1001 thread_group,
1002 string,
1003 CHECK_NULL);
1004 return thread_oop();
1005 }
1006
1007 char java_runtime_name[128] = "";
1008 char java_runtime_version[128] = "";
1009
1010 // extract the JRE name from java.lang.VersionProps.java_runtime_name
1011 static const char* get_java_runtime_name(TRAPS) {
1012 Klass* k = SystemDictionary::find(vmSymbols::java_lang_VersionProps(),
1013 Handle(), Handle(), CHECK_AND_CLEAR_NULL);
1014 fieldDescriptor fd;
|