Thu, 23 Oct 2014 11:43:29 +0200
8061630: G1 iterates over JNIHandles two times
Reviewed-by: mgerdin, brutisso
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Thu Aug 07 09:35:08 2014 +0200 1.2 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Thu Oct 23 11:43:29 2014 +0200 1.3 @@ -5900,14 +5900,10 @@ 1.4 // not copied during the pause. 1.5 process_discovered_references(n_workers); 1.6 1.7 - // Weak root processing. 1.8 - { 1.9 + if (G1StringDedup::is_enabled()) { 1.10 G1STWIsAliveClosure is_alive(this); 1.11 G1KeepAliveClosure keep_alive(this); 1.12 - JNIHandles::weak_oops_do(&is_alive, &keep_alive); 1.13 - if (G1StringDedup::is_enabled()) { 1.14 - G1StringDedup::unlink_or_oops_do(&is_alive, &keep_alive); 1.15 - } 1.16 + G1StringDedup::unlink_or_oops_do(&is_alive, &keep_alive); 1.17 } 1.18 1.19 _allocator->release_gc_alloc_regions(n_workers, evacuation_info);