comparison 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
comparison
equal deleted inserted replaced
11176:0630959b64e8 11177:d0aeaf72c7bd
5117 5117
5118 BufferingOopClosure buf_scan_non_heap_roots(scan_non_heap_roots); 5118 BufferingOopClosure buf_scan_non_heap_roots(scan_non_heap_roots);
5119 5119
5120 // Walk the code cache w/o buffering, because StarTask cannot handle 5120 // Walk the code cache w/o buffering, because StarTask cannot handle
5121 // unaligned oop locations. 5121 // unaligned oop locations.
5122 G1FilteredCodeBlobToOopClosure eager_scan_code_roots(this, scan_non_heap_roots); 5122 G1FilteredCodeBlobToOopClosure eager_scan_cs_code_roots(this, scan_non_heap_roots);
5123
5124 // Scan all code roots from stack
5125 CodeBlobToOopClosure eager_scan_all_code_roots(scan_non_heap_roots, true);
5126 CodeBlobToOopClosure* blobs = &eager_scan_cs_code_roots;
5127 if (UseNewCode && g1_policy()->during_initial_mark_pause()) {
5128 // during initial-mark we need to take care to follow all code roots
5129 blobs = &eager_scan_all_code_roots;
5130 }
5123 5131
5124 process_strong_roots(false, // no scoping; this is parallel code 5132 process_strong_roots(false, // no scoping; this is parallel code
5125 is_scavenging, so, 5133 is_scavenging, so,
5126 &buf_scan_non_heap_roots, 5134 &buf_scan_non_heap_roots,
5127 &eager_scan_code_roots, 5135 blobs,
5128 scan_klasses 5136 scan_klasses
5129 ); 5137 );
5130 5138
5131 // Now the CM ref_processor roots. 5139 // Now the CM ref_processor roots.
5132 if (!_process_strong_tasks->is_task_claimed(G1H_PS_refProcessor_oops_do)) { 5140 if (!_process_strong_tasks->is_task_claimed(G1H_PS_refProcessor_oops_do)) {