Mercurial > hg > truffle
diff src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 11177:d0aeaf72c7bd
Merge.
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 05 Aug 2013 11:25:14 +0200 |
parents | 6b0fd0964b87 d85bdcb38fa2 |
children | cefad50507d8 |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Thu Aug 01 00:57:27 2013 +0200 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Mon Aug 05 11:25:14 2013 +0200 @@ -5119,12 +5119,20 @@ // Walk the code cache w/o buffering, because StarTask cannot handle // unaligned oop locations. - G1FilteredCodeBlobToOopClosure eager_scan_code_roots(this, scan_non_heap_roots); + G1FilteredCodeBlobToOopClosure eager_scan_cs_code_roots(this, scan_non_heap_roots); + + // Scan all code roots from stack + CodeBlobToOopClosure eager_scan_all_code_roots(scan_non_heap_roots, true); + CodeBlobToOopClosure* blobs = &eager_scan_cs_code_roots; + if (UseNewCode && g1_policy()->during_initial_mark_pause()) { + // during initial-mark we need to take care to follow all code roots + blobs = &eager_scan_all_code_roots; + } process_strong_roots(false, // no scoping; this is parallel code is_scavenging, so, &buf_scan_non_heap_roots, - &eager_scan_code_roots, + blobs, scan_klasses );