3247 int java_lang_Module::name_offset; |
3247 int java_lang_Module::name_offset; |
3248 int java_lang_Module::_module_entry_offset = -1; |
3248 int java_lang_Module::_module_entry_offset = -1; |
3249 |
3249 |
3250 Handle java_lang_Module::create(Handle loader, Handle module_name, TRAPS) { |
3250 Handle java_lang_Module::create(Handle loader, Handle module_name, TRAPS) { |
3251 assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem"); |
3251 assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem"); |
3252 |
3252 return JavaCalls::construct_new_instance(SystemDictionary::Module_klass(), |
3253 Symbol* name = vmSymbols::java_lang_Module(); |
|
3254 Klass* k = SystemDictionary::resolve_or_fail(name, true, CHECK_NH); |
|
3255 InstanceKlass* ik = InstanceKlass::cast(k); |
|
3256 Handle jlmh = ik->allocate_instance_handle(CHECK_NH); |
|
3257 JavaValue result(T_VOID); |
|
3258 JavaCalls::call_special(&result, jlmh, ik, |
|
3259 vmSymbols::object_initializer_name(), |
|
3260 vmSymbols::java_lang_module_init_signature(), |
3253 vmSymbols::java_lang_module_init_signature(), |
3261 loader, module_name, CHECK_NH); |
3254 loader, module_name, CHECK_NH); |
3262 return jlmh; |
|
3263 } |
3255 } |
3264 |
3256 |
3265 #define MODULE_FIELDS_DO(macro) \ |
3257 #define MODULE_FIELDS_DO(macro) \ |
3266 macro(loader_offset, k, vmSymbols::loader_name(), classloader_signature, false); \ |
3258 macro(loader_offset, k, vmSymbols::loader_name(), classloader_signature, false); \ |
3267 macro(name_offset, k, vmSymbols::name_name(), string_signature, false) |
3259 macro(name_offset, k, vmSymbols::name_name(), string_signature, false) |