< prev index next >

src/hotspot/share/memory/universe.cpp

Print this page

 363     ClassLoaderData* loader_data = ClassLoaderData::the_null_class_loader_data();
 364     assert(k->super() == ok, "u3");
 365     if (k->is_instance_klass()) {
 366       InstanceKlass::cast(k)->restore_unshareable_info(loader_data, Handle(), nullptr, CHECK);
 367     } else {
 368       ArrayKlass::cast(k)->restore_unshareable_info(loader_data, Handle(), CHECK);
 369     }
 370   } else
 371 #endif
 372   {
 373     k->initialize_supers(ok, nullptr, CHECK);
 374   }
 375   k->append_to_sibling_list();
 376 }
 377 
 378 void Universe::genesis(TRAPS) {
 379   ResourceMark rm(THREAD);
 380   HandleMark   hm(THREAD);
 381 
 382   // Explicit null checks are needed if these offsets are not smaller than the page size
 383   assert(oopDesc::klass_offset_in_bytes() < static_cast<intptr_t>(os::vm_page_size()),
 384          "Klass offset is expected to be less than the page size");





 385   assert(arrayOopDesc::length_offset_in_bytes() < static_cast<intptr_t>(os::vm_page_size()),
 386          "Array length offset is expected to be less than the page size");
 387 
 388   { AutoModifyRestore<bool> temporarily(_bootstrapping, true);
 389 
 390     java_lang_Class::allocate_fixup_lists();
 391 
 392     // determine base vtable size; without that we cannot create the array klasses
 393     compute_base_vtable_size();
 394 
 395     if (!UseSharedSpaces) {
 396       // Initialization of the fillerArrayKlass must come before regular
 397       // int-TypeArrayKlass so that the int-Array mirror points to the
 398       // int-TypeArrayKlass.
 399       _fillerArrayKlass = TypeArrayKlass::create_klass(T_INT, "[Ljdk/internal/vm/FillerElement;", CHECK);
 400       for (int i = T_BOOLEAN; i < T_LONG+1; i++) {
 401         _typeArrayKlasses[i] = TypeArrayKlass::create_klass((BasicType)i, CHECK);
 402       }
 403 
 404       ClassLoaderData* null_cld = ClassLoaderData::the_null_class_loader_data();

 363     ClassLoaderData* loader_data = ClassLoaderData::the_null_class_loader_data();
 364     assert(k->super() == ok, "u3");
 365     if (k->is_instance_klass()) {
 366       InstanceKlass::cast(k)->restore_unshareable_info(loader_data, Handle(), nullptr, CHECK);
 367     } else {
 368       ArrayKlass::cast(k)->restore_unshareable_info(loader_data, Handle(), CHECK);
 369     }
 370   } else
 371 #endif
 372   {
 373     k->initialize_supers(ok, nullptr, CHECK);
 374   }
 375   k->append_to_sibling_list();
 376 }
 377 
 378 void Universe::genesis(TRAPS) {
 379   ResourceMark rm(THREAD);
 380   HandleMark   hm(THREAD);
 381 
 382   // Explicit null checks are needed if these offsets are not smaller than the page size
 383   if (UseCompactObjectHeaders) {
 384     assert(oopDesc::mark_offset_in_bytes() < static_cast<intptr_t>(os::vm_page_size()),
 385            "Mark offset is expected to be less than the page size");
 386   } else {
 387     assert(oopDesc::klass_offset_in_bytes() < static_cast<intptr_t>(os::vm_page_size()),
 388            "Klass offset is expected to be less than the page size");
 389   }
 390   assert(arrayOopDesc::length_offset_in_bytes() < static_cast<intptr_t>(os::vm_page_size()),
 391          "Array length offset is expected to be less than the page size");
 392 
 393   { AutoModifyRestore<bool> temporarily(_bootstrapping, true);
 394 
 395     java_lang_Class::allocate_fixup_lists();
 396 
 397     // determine base vtable size; without that we cannot create the array klasses
 398     compute_base_vtable_size();
 399 
 400     if (!UseSharedSpaces) {
 401       // Initialization of the fillerArrayKlass must come before regular
 402       // int-TypeArrayKlass so that the int-Array mirror points to the
 403       // int-TypeArrayKlass.
 404       _fillerArrayKlass = TypeArrayKlass::create_klass(T_INT, "[Ljdk/internal/vm/FillerElement;", CHECK);
 405       for (int i = T_BOOLEAN; i < T_LONG+1; i++) {
 406         _typeArrayKlasses[i] = TypeArrayKlass::create_klass((BasicType)i, CHECK);
 407       }
 408 
 409       ClassLoaderData* null_cld = ClassLoaderData::the_null_class_loader_data();
< prev index next >