345 VerifyBeforeGC) {
346 old_gen->verify_object_start_array();
347 }
348
349 // Verify no unmarked old->young roots
350 if (VerifyRememberedSets) {
351 CardTableExtension::verify_all_young_refs_imprecise();
352 }
353
354 if (!ScavengeWithObjectsInToSpace) {
355 assert(young_gen->to_space()->is_empty(),
356 "Attempt to scavenge with live objects in to_space");
357 young_gen->to_space()->clear(SpaceDecorator::Mangle);
358 } else if (ZapUnusedHeapArea) {
359 young_gen->to_space()->mangle_unused_area();
360 }
361 save_to_space_top_before_gc();
362
363 COMPILER2_PRESENT(DerivedPointerTable::clear());
364
365 reference_processor()->enable_discovery(true /*verify_disabled*/, true /*verify_no_refs*/);
366 reference_processor()->setup_policy(false);
367
368 // We track how much was promoted to the next generation for
369 // the AdaptiveSizePolicy.
370 size_t old_gen_used_before = old_gen->used_in_bytes();
371
372 // For PrintGCDetails
373 size_t young_gen_used_before = young_gen->used_in_bytes();
374
375 // Reset our survivor overflow.
376 set_survivor_overflow(false);
377
378 // We need to save the old top values before
379 // creating the promotion_manager. We pass the top
380 // values to the card_table, to prevent it from
381 // straying into the promotion labs.
382 HeapWord* old_top = old_gen->object_space()->top();
383
384 // Release all previously held resources
385 gc_task_manager()->release_all_resources();
|
345 VerifyBeforeGC) {
346 old_gen->verify_object_start_array();
347 }
348
349 // Verify no unmarked old->young roots
350 if (VerifyRememberedSets) {
351 CardTableExtension::verify_all_young_refs_imprecise();
352 }
353
354 if (!ScavengeWithObjectsInToSpace) {
355 assert(young_gen->to_space()->is_empty(),
356 "Attempt to scavenge with live objects in to_space");
357 young_gen->to_space()->clear(SpaceDecorator::Mangle);
358 } else if (ZapUnusedHeapArea) {
359 young_gen->to_space()->mangle_unused_area();
360 }
361 save_to_space_top_before_gc();
362
363 COMPILER2_PRESENT(DerivedPointerTable::clear());
364
365 reference_processor()->enable_discovery();
366 reference_processor()->setup_policy(false);
367
368 // We track how much was promoted to the next generation for
369 // the AdaptiveSizePolicy.
370 size_t old_gen_used_before = old_gen->used_in_bytes();
371
372 // For PrintGCDetails
373 size_t young_gen_used_before = young_gen->used_in_bytes();
374
375 // Reset our survivor overflow.
376 set_survivor_overflow(false);
377
378 // We need to save the old top values before
379 // creating the promotion_manager. We pass the top
380 // values to the card_table, to prevent it from
381 // straying into the promotion labs.
382 HeapWord* old_top = old_gen->object_space()->top();
383
384 // Release all previously held resources
385 gc_task_manager()->release_all_resources();
|