< prev index next >

src/share/vm/classfile/javaClasses.cpp

Print this page




 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 =


< prev index next >