comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 22907:93a69595b807

8061630: G1 iterates over JNIHandles two times Reviewed-by: mgerdin, brutisso
author ehelin
date Thu, 23 Oct 2014 11:43:29 +0200
parents 8e9ede9dd2cd
children c3fcc09c9239
comparison
equal deleted inserted replaced
22906:ad32e85474ff 22907:93a69595b807
5898 // as we may have to copy some 'reachable' referent 5898 // as we may have to copy some 'reachable' referent
5899 // objects (and their reachable sub-graphs) that were 5899 // objects (and their reachable sub-graphs) that were
5900 // not copied during the pause. 5900 // not copied during the pause.
5901 process_discovered_references(n_workers); 5901 process_discovered_references(n_workers);
5902 5902
5903 // Weak root processing. 5903 if (G1StringDedup::is_enabled()) {
5904 {
5905 G1STWIsAliveClosure is_alive(this); 5904 G1STWIsAliveClosure is_alive(this);
5906 G1KeepAliveClosure keep_alive(this); 5905 G1KeepAliveClosure keep_alive(this);
5907 JNIHandles::weak_oops_do(&is_alive, &keep_alive); 5906 G1StringDedup::unlink_or_oops_do(&is_alive, &keep_alive);
5908 if (G1StringDedup::is_enabled()) {
5909 G1StringDedup::unlink_or_oops_do(&is_alive, &keep_alive);
5910 }
5911 } 5907 }
5912 5908
5913 _allocator->release_gc_alloc_regions(n_workers, evacuation_info); 5909 _allocator->release_gc_alloc_regions(n_workers, evacuation_info);
5914 g1_rem_set()->cleanup_after_oops_into_collection_set_do(); 5910 g1_rem_set()->cleanup_after_oops_into_collection_set_do();
5915 5911