src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp

Print this page
rev 2691 : [mq]: g1-reference-processing


 333     if (VerifyObjectStartArray &&
 334         VerifyBeforeGC) {
 335       old_gen->verify_object_start_array();
 336       perm_gen->verify_object_start_array();
 337     }
 338 
 339     // Verify no unmarked old->young roots
 340     if (VerifyRememberedSets) {
 341       CardTableExtension::verify_all_young_refs_imprecise();
 342     }
 343 
 344     if (!ScavengeWithObjectsInToSpace) {
 345       assert(young_gen->to_space()->is_empty(),
 346              "Attempt to scavenge with live objects in to_space");
 347       young_gen->to_space()->clear(SpaceDecorator::Mangle);
 348     } else if (ZapUnusedHeapArea) {
 349       young_gen->to_space()->mangle_unused_area();
 350     }
 351     save_to_space_top_before_gc();
 352 
 353     NOT_PRODUCT(reference_processor()->verify_no_references_recorded());
 354     COMPILER2_PRESENT(DerivedPointerTable::clear());
 355 
 356     reference_processor()->enable_discovery();
 357     reference_processor()->setup_policy(false);
 358 
 359     // We track how much was promoted to the next generation for
 360     // the AdaptiveSizePolicy.
 361     size_t old_gen_used_before = old_gen->used_in_bytes();
 362 
 363     // For PrintGCDetails
 364     size_t young_gen_used_before = young_gen->used_in_bytes();
 365 
 366     // Reset our survivor overflow.
 367     set_survivor_overflow(false);
 368 
 369     // We need to save the old/perm top values before
 370     // creating the promotion_manager. We pass the top
 371     // values to the card_table, to prevent it from
 372     // straying into the promotion labs.
 373     HeapWord* old_top = old_gen->object_space()->top();
 374     HeapWord* perm_top = perm_gen->object_space()->top();
 375 
 376     // Release all previously held resources




 333     if (VerifyObjectStartArray &&
 334         VerifyBeforeGC) {
 335       old_gen->verify_object_start_array();
 336       perm_gen->verify_object_start_array();
 337     }
 338 
 339     // Verify no unmarked old->young roots
 340     if (VerifyRememberedSets) {
 341       CardTableExtension::verify_all_young_refs_imprecise();
 342     }
 343 
 344     if (!ScavengeWithObjectsInToSpace) {
 345       assert(young_gen->to_space()->is_empty(),
 346              "Attempt to scavenge with live objects in to_space");
 347       young_gen->to_space()->clear(SpaceDecorator::Mangle);
 348     } else if (ZapUnusedHeapArea) {
 349       young_gen->to_space()->mangle_unused_area();
 350     }
 351     save_to_space_top_before_gc();
 352 

 353     COMPILER2_PRESENT(DerivedPointerTable::clear());
 354 
 355     reference_processor()->enable_discovery(true /*verify_disabled*/, true /*verify_no_refs*/);
 356     reference_processor()->setup_policy(false);
 357 
 358     // We track how much was promoted to the next generation for
 359     // the AdaptiveSizePolicy.
 360     size_t old_gen_used_before = old_gen->used_in_bytes();
 361 
 362     // For PrintGCDetails
 363     size_t young_gen_used_before = young_gen->used_in_bytes();
 364 
 365     // Reset our survivor overflow.
 366     set_survivor_overflow(false);
 367 
 368     // We need to save the old/perm top values before
 369     // creating the promotion_manager. We pass the top
 370     // values to the card_table, to prevent it from
 371     // straying into the promotion labs.
 372     HeapWord* old_top = old_gen->object_space()->top();
 373     HeapWord* perm_top = perm_gen->object_space()->top();
 374 
 375     // Release all previously held resources