src/hotspot/share/classfile/javaClasses.cpp
changeset 50217 843fc56f4686
parent 50176 0cc29ebee3f9
child 50389 7e8c0409a747
equal deleted inserted replaced
50216:f4fd580dd7d1 50217:843fc56f4686
  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)