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
|