1 /* |
1 /* |
2 * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
464 } else { |
464 } else { |
465 reference_processor()->enqueue_discovered_references(NULL); |
465 reference_processor()->enqueue_discovered_references(NULL); |
466 } |
466 } |
467 } |
467 } |
468 |
468 |
469 GCTraceTime tm("StringTable", false, false, &_gc_timer); |
469 { |
470 // Unlink any dead interned Strings and process the remaining live ones. |
470 GCTraceTime tm("StringTable", false, false, &_gc_timer); |
471 PSScavengeRootsClosure root_closure(promotion_manager); |
471 // Unlink any dead interned Strings and process the remaining live ones. |
472 StringTable::unlink_or_oops_do(&_is_alive_closure, &root_closure); |
472 PSScavengeRootsClosure root_closure(promotion_manager); |
|
473 StringTable::unlink_or_oops_do(&_is_alive_closure, &root_closure); |
|
474 } |
473 |
475 |
474 // Finally, flush the promotion_manager's labs, and deallocate its stacks. |
476 // Finally, flush the promotion_manager's labs, and deallocate its stacks. |
475 promotion_failure_occurred = PSPromotionManager::post_scavenge(_gc_tracer); |
477 promotion_failure_occurred = PSPromotionManager::post_scavenge(_gc_tracer); |
476 if (promotion_failure_occurred) { |
478 if (promotion_failure_occurred) { |
477 clean_up_failed_promotion(); |
479 clean_up_failed_promotion(); |