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();
|