< prev index next >

src/hotspot/share/memory/universe.cpp

Print this page




 246   it->push(&_the_empty_method_array);
 247   it->push(&_the_array_interfaces_array);
 248 
 249   _finalizer_register_cache->metaspace_pointers_do(it);
 250   _loader_addClass_cache->metaspace_pointers_do(it);
 251   _throw_illegal_access_error_cache->metaspace_pointers_do(it);
 252   _throw_no_such_method_error_cache->metaspace_pointers_do(it);
 253   _do_stack_walk_cache->metaspace_pointers_do(it);
 254 }
 255 
 256 // Serialize metadata and pointers to primitive type mirrors in and out of CDS archive
 257 void Universe::serialize(SerializeClosure* f) {
 258 
 259 #if INCLUDE_CDS_JAVA_HEAP
 260   {
 261     oop mirror_oop;
 262     for (int i = T_BOOLEAN; i < T_VOID+1; i++) {
 263       if (f->reading()) {
 264         f->do_oop(&mirror_oop); // read from archive
 265         assert(oopDesc::is_oop_or_null(mirror_oop), "is oop");


 266         _mirrors[i] = OopHandle(vm_global(), mirror_oop);

 267       } else {
 268         mirror_oop = _mirrors[i].resolve();
 269         f->do_oop(&mirror_oop); // write to archive
 270       }
 271       if (mirror_oop != NULL) { // may be null if archived heap is disabled
 272         java_lang_Class::update_archived_primitive_mirror_native_pointers(mirror_oop);
 273       }
 274     }
 275   }
 276 #endif
 277 
 278   for (int i = 0; i < T_LONG+1; i++) {
 279     f->do_ptr((void**)&_typeArrayKlassObjs[i]);
 280   }
 281 
 282   f->do_ptr((void**)&_objectArrayKlassObj);
 283   f->do_ptr((void**)&_the_array_interfaces_array);
 284   f->do_ptr((void**)&_the_empty_int_array);
 285   f->do_ptr((void**)&_the_empty_short_array);
 286   f->do_ptr((void**)&_the_empty_method_array);




 246   it->push(&_the_empty_method_array);
 247   it->push(&_the_array_interfaces_array);
 248 
 249   _finalizer_register_cache->metaspace_pointers_do(it);
 250   _loader_addClass_cache->metaspace_pointers_do(it);
 251   _throw_illegal_access_error_cache->metaspace_pointers_do(it);
 252   _throw_no_such_method_error_cache->metaspace_pointers_do(it);
 253   _do_stack_walk_cache->metaspace_pointers_do(it);
 254 }
 255 
 256 // Serialize metadata and pointers to primitive type mirrors in and out of CDS archive
 257 void Universe::serialize(SerializeClosure* f) {
 258 
 259 #if INCLUDE_CDS_JAVA_HEAP
 260   {
 261     oop mirror_oop;
 262     for (int i = T_BOOLEAN; i < T_VOID+1; i++) {
 263       if (f->reading()) {
 264         f->do_oop(&mirror_oop); // read from archive
 265         assert(oopDesc::is_oop_or_null(mirror_oop), "is oop");
 266         // Only create an OopHandle for non-null mirrors
 267         if (mirror_oop != NULL) {
 268           _mirrors[i] = OopHandle(vm_global(), mirror_oop);
 269         }
 270       } else {
 271         mirror_oop = _mirrors[i].resolve();
 272         f->do_oop(&mirror_oop); // write to archive
 273       }
 274       if (mirror_oop != NULL) { // may be null if archived heap is disabled
 275         java_lang_Class::update_archived_primitive_mirror_native_pointers(mirror_oop);
 276       }
 277     }
 278   }
 279 #endif
 280 
 281   for (int i = 0; i < T_LONG+1; i++) {
 282     f->do_ptr((void**)&_typeArrayKlassObjs[i]);
 283   }
 284 
 285   f->do_ptr((void**)&_objectArrayKlassObj);
 286   f->do_ptr((void**)&_the_array_interfaces_array);
 287   f->do_ptr((void**)&_the_empty_int_array);
 288   f->do_ptr((void**)&_the_empty_short_array);
 289   f->do_ptr((void**)&_the_empty_method_array);


< prev index next >