782 // for java.base is known.
783 assert(!Universe::is_module_initialized(), "Incorrect java.lang.Module pre module system initialization");
784
785 bool javabase_was_defined = false;
786 {
787 MutexLocker m1(Module_lock, THREAD);
788 // Keep list of classes needing java.base module fixup
789 if (!ModuleEntryTable::javabase_defined()) {
790 assert(k->java_mirror() != NULL, "Class's mirror is null");
791 k->class_loader_data()->inc_keep_alive();
792 assert(fixup_module_field_list() != NULL, "fixup_module_field_list not initialized");
793 fixup_module_field_list()->push(k);
794 } else {
795 javabase_was_defined = true;
796 }
797 }
798
799 // If java.base was already defined then patch this particular class with java.base.
800 if (javabase_was_defined) {
801 ModuleEntry *javabase_entry = ModuleEntryTable::javabase_moduleEntry();
802 assert(javabase_entry != NULL && javabase_entry->module_handle() != NULL,
803 "Setting class module field, " JAVA_BASE_NAME " should be defined");
804 Handle javabase_handle(THREAD, javabase_entry->module());
805 set_module(mirror(), javabase_handle());
806 }
807 } else {
808 assert(Universe::is_module_initialized() ||
809 (ModuleEntryTable::javabase_defined() &&
810 (module() == ModuleEntryTable::javabase_moduleEntry()->module())),
811 "Incorrect java.lang.Module specification while creating mirror");
812 set_module(mirror(), module());
813 }
814 }
815
816 // Statically allocate fixup lists because they always get created.
817 void java_lang_Class::allocate_fixup_lists() {
818 GrowableArray<Klass*>* mirror_list =
819 new (ResourceObj::C_HEAP, mtClass) GrowableArray<Klass*>(40, true);
820 set_fixup_mirror_list(mirror_list);
821
822 GrowableArray<Klass*>* module_list =
|
782 // for java.base is known.
783 assert(!Universe::is_module_initialized(), "Incorrect java.lang.Module pre module system initialization");
784
785 bool javabase_was_defined = false;
786 {
787 MutexLocker m1(Module_lock, THREAD);
788 // Keep list of classes needing java.base module fixup
789 if (!ModuleEntryTable::javabase_defined()) {
790 assert(k->java_mirror() != NULL, "Class's mirror is null");
791 k->class_loader_data()->inc_keep_alive();
792 assert(fixup_module_field_list() != NULL, "fixup_module_field_list not initialized");
793 fixup_module_field_list()->push(k);
794 } else {
795 javabase_was_defined = true;
796 }
797 }
798
799 // If java.base was already defined then patch this particular class with java.base.
800 if (javabase_was_defined) {
801 ModuleEntry *javabase_entry = ModuleEntryTable::javabase_moduleEntry();
802 assert(javabase_entry != NULL && javabase_entry->module() != NULL,
803 "Setting class module field, " JAVA_BASE_NAME " should be defined");
804 Handle javabase_handle(THREAD, javabase_entry->module());
805 set_module(mirror(), javabase_handle());
806 }
807 } else {
808 assert(Universe::is_module_initialized() ||
809 (ModuleEntryTable::javabase_defined() &&
810 (module() == ModuleEntryTable::javabase_moduleEntry()->module())),
811 "Incorrect java.lang.Module specification while creating mirror");
812 set_module(mirror(), module());
813 }
814 }
815
816 // Statically allocate fixup lists because they always get created.
817 void java_lang_Class::allocate_fixup_lists() {
818 GrowableArray<Klass*>* mirror_list =
819 new (ResourceObj::C_HEAP, mtClass) GrowableArray<Klass*>(40, true);
820 set_fixup_mirror_list(mirror_list);
821
822 GrowableArray<Klass*>* module_list =
|