< prev index next >

src/hotspot/share/classfile/javaClasses.cpp

Print this page


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


< prev index next >