448 reference_processor()->enqueue_discovered_references(&task_executor); |
448 reference_processor()->enqueue_discovered_references(&task_executor); |
449 } else { |
449 } else { |
450 reference_processor()->enqueue_discovered_references(NULL); |
450 reference_processor()->enqueue_discovered_references(NULL); |
451 } |
451 } |
452 |
452 |
453 // Unlink any dead interned Strings |
453 // Unlink any dead interned Strings and process the remaining live ones. |
454 StringTable::unlink(&_is_alive_closure); |
454 PSScavengeRootsClosure root_closure(promotion_manager); |
455 // Process the remaining live ones |
455 StringTable::unlink_or_oops_do(&_is_alive_closure, &root_closure); |
456 PSScavengeRootsClosure root_closure(promotion_manager); |
|
457 StringTable::oops_do(&root_closure); |
|
458 |
456 |
459 // Finally, flush the promotion_manager's labs, and deallocate its stacks. |
457 // Finally, flush the promotion_manager's labs, and deallocate its stacks. |
460 PSPromotionManager::post_scavenge(); |
458 PSPromotionManager::post_scavenge(); |
461 |
459 |
462 promotion_failure_occurred = promotion_failed(); |
460 promotion_failure_occurred = promotion_failed(); |