68 oop name_oop = java_lang_Module::name(module);
69 if (name_oop == NULL) {
70 THROW_MSG_NULL(vmSymbols::java_lang_NullPointerException(), "Null module name");
71 }
72 char* module_name = java_lang_String::as_utf8_string(name_oop);
73 if (!verify_module_name(module_name)) {
74 THROW_MSG_NULL(vmSymbols::java_lang_IllegalArgumentException(),
75 err_msg("Invalid module name: %s",
76 module_name != NULL ? module_name : "NULL"));
77 }
78 return module_name;
79 }
80
81 static const char* get_module_version(jstring version) {
82 if (version == NULL) {
83 return NULL;
84 }
85 return java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(version));
86 }
87
88 static ModuleEntryTable* get_module_entry_table(Handle h_loader) {
89 // This code can be called during start-up, before the classLoader's classLoader data got
90 // created. So, call register_loader() to make sure the classLoader data gets created.
91 ClassLoaderData *loader_cld = SystemDictionary::register_loader(h_loader);
92 return loader_cld->modules();
93 }
94
95 static PackageEntryTable* get_package_entry_table(Handle h_loader) {
96 // This code can be called during start-up, before the classLoader's classLoader data got
97 // created. So, call register_loader() to make sure the classLoader data gets created.
98 ClassLoaderData *loader_cld = SystemDictionary::register_loader(h_loader);
99 return loader_cld->packages();
100 }
101
102 static ModuleEntry* get_module_entry(jobject module, TRAPS) {
103 oop m = JNIHandles::resolve(module);
104 if (!java_lang_Module::is_instance(m)) {
105 THROW_MSG_NULL(vmSymbols::java_lang_IllegalArgumentException(),
106 "module is not an instance of type java.lang.Module");
107 }
108 return java_lang_Module::module_entry(m);
|
68 oop name_oop = java_lang_Module::name(module);
69 if (name_oop == NULL) {
70 THROW_MSG_NULL(vmSymbols::java_lang_NullPointerException(), "Null module name");
71 }
72 char* module_name = java_lang_String::as_utf8_string(name_oop);
73 if (!verify_module_name(module_name)) {
74 THROW_MSG_NULL(vmSymbols::java_lang_IllegalArgumentException(),
75 err_msg("Invalid module name: %s",
76 module_name != NULL ? module_name : "NULL"));
77 }
78 return module_name;
79 }
80
81 static const char* get_module_version(jstring version) {
82 if (version == NULL) {
83 return NULL;
84 }
85 return java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(version));
86 }
87
88 ModuleEntryTable* Modules::get_module_entry_table(Handle h_loader) {
89 // This code can be called during start-up, before the classLoader's classLoader data got
90 // created. So, call register_loader() to make sure the classLoader data gets created.
91 ClassLoaderData *loader_cld = SystemDictionary::register_loader(h_loader);
92 return loader_cld->modules();
93 }
94
95 static PackageEntryTable* get_package_entry_table(Handle h_loader) {
96 // This code can be called during start-up, before the classLoader's classLoader data got
97 // created. So, call register_loader() to make sure the classLoader data gets created.
98 ClassLoaderData *loader_cld = SystemDictionary::register_loader(h_loader);
99 return loader_cld->packages();
100 }
101
102 static ModuleEntry* get_module_entry(jobject module, TRAPS) {
103 oop m = JNIHandles::resolve(module);
104 if (!java_lang_Module::is_instance(m)) {
105 THROW_MSG_NULL(vmSymbols::java_lang_IllegalArgumentException(),
106 "module is not an instance of type java.lang.Module");
107 }
108 return java_lang_Module::module_entry(m);
|