97 // Initialization of vtables and mirror object is done separatly from base_create_array_klass, |
97 // Initialization of vtables and mirror object is done separatly from base_create_array_klass, |
98 // since a GC can happen. At this point all instance variables of the ArrayKlass must be setup. |
98 // since a GC can happen. At this point all instance variables of the ArrayKlass must be setup. |
99 void ArrayKlass::complete_create_array_klass(ArrayKlass* k, Klass* super_klass, ModuleEntry* module_entry, TRAPS) { |
99 void ArrayKlass::complete_create_array_klass(ArrayKlass* k, Klass* super_klass, ModuleEntry* module_entry, TRAPS) { |
100 ResourceMark rm(THREAD); |
100 ResourceMark rm(THREAD); |
101 k->initialize_supers(super_klass, CHECK); |
101 k->initialize_supers(super_klass, CHECK); |
102 k->vtable()->initialize_vtable(false, CHECK); |
102 k->vtable().initialize_vtable(false, CHECK); |
103 |
103 |
104 // During bootstrapping, before java.base is defined, the module_entry may not be present yet. |
104 // During bootstrapping, before java.base is defined, the module_entry may not be present yet. |
105 // These classes will be put on a fixup list and their module fields will be patched once |
105 // These classes will be put on a fixup list and their module fields will be patched once |
106 // java.base is defined. |
106 // java.base is defined. |
107 assert((module_entry != NULL) || ((module_entry == NULL) && !ModuleEntryTable::javabase_defined()), |
107 assert((module_entry != NULL) || ((module_entry == NULL) && !ModuleEntryTable::javabase_defined()), |