1300
1301 // create the init_lock
1302 typeArrayOop r = oopFactory::new_typeArray(T_INT, 0, CHECK_(false));
1303 set_init_lock(mirror(), r);
1304
1305 if (protection_domain.not_null()) {
1306 set_protection_domain(mirror(), protection_domain());
1307 }
1308 }
1309
1310 assert(class_loader() == k->class_loader(), "should be same");
1311 if (class_loader.not_null()) {
1312 set_class_loader(mirror(), class_loader());
1313 }
1314
1315 k->set_java_mirror(mirror);
1316 k->clear_has_raw_archived_mirror();
1317
1318 set_mirror_module_field(k, mirror, module, THREAD);
1319
1320 ResourceMark rm;
1321 log_trace(cds, heap, mirror)(
1322 "Restored %s archived mirror " PTR_FORMAT, k->external_name(), p2i(mirror()));
1323
1324 return true;
1325 }
1326 #endif // INCLUDE_CDS_JAVA_HEAP
1327
1328 void java_lang_Class::fixup_module_field(Klass* k, Handle module) {
1329 assert(_module_offset != 0, "must have been computed already");
1330 java_lang_Class::set_module(k->java_mirror(), module());
1331 }
1332
1333 int java_lang_Class::oop_size(oop java_class) {
1334 assert(_oop_size_offset != 0, "must be set");
1335 int size = java_class->int_field(_oop_size_offset);
1336 assert(size > 0, "Oop size must be greater than zero, not %d", size);
1337 return size;
1338 }
1339
1340
1341 void java_lang_Class::set_oop_size(HeapWord* java_class, int size) {
1342 assert(_oop_size_offset != 0, "must be set");
|
1300
1301 // create the init_lock
1302 typeArrayOop r = oopFactory::new_typeArray(T_INT, 0, CHECK_(false));
1303 set_init_lock(mirror(), r);
1304
1305 if (protection_domain.not_null()) {
1306 set_protection_domain(mirror(), protection_domain());
1307 }
1308 }
1309
1310 assert(class_loader() == k->class_loader(), "should be same");
1311 if (class_loader.not_null()) {
1312 set_class_loader(mirror(), class_loader());
1313 }
1314
1315 k->set_java_mirror(mirror);
1316 k->clear_has_raw_archived_mirror();
1317
1318 set_mirror_module_field(k, mirror, module, THREAD);
1319
1320 if (log_is_enabled(Trace, cds, heap, mirror)) {
1321 ResourceMark rm(THREAD);
1322 log_trace(cds, heap, mirror)(
1323 "Restored %s archived mirror " PTR_FORMAT, k->external_name(), p2i(mirror()));
1324 }
1325
1326 return true;
1327 }
1328 #endif // INCLUDE_CDS_JAVA_HEAP
1329
1330 void java_lang_Class::fixup_module_field(Klass* k, Handle module) {
1331 assert(_module_offset != 0, "must have been computed already");
1332 java_lang_Class::set_module(k->java_mirror(), module());
1333 }
1334
1335 int java_lang_Class::oop_size(oop java_class) {
1336 assert(_oop_size_offset != 0, "must be set");
1337 int size = java_class->int_field(_oop_size_offset);
1338 assert(size > 0, "Oop size must be greater than zero, not %d", size);
1339 return size;
1340 }
1341
1342
1343 void java_lang_Class::set_oop_size(HeapWord* java_class, int size) {
1344 assert(_oop_size_offset != 0, "must be set");
|