Fix verify heap problem when parallel sweeping is enabled.

BUG=

Review URL: https://codereview.chromium.org/12260004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
hpayer@chromium.org 2013-02-13 11:02:39 +00:00
parent ae37a51334
commit 5f1a4e3fa1

View File

@ -3722,7 +3722,8 @@ void MarkCompactCollector::SweepInParallel(PagedSpace* space,
void MarkCompactCollector::SweepSpace(PagedSpace* space, SweeperType sweeper) {
space->set_was_swept_conservatively(sweeper == CONSERVATIVE ||
sweeper == LAZY_CONSERVATIVE);
sweeper == LAZY_CONSERVATIVE ||
sweeper == PARALLEL_CONSERVATIVE);
space->ClearStats();
PageIterator it(space);
@ -3841,9 +3842,9 @@ void MarkCompactCollector::SweepSpaces() {
#endif
SweeperType how_to_sweep =
FLAG_lazy_sweeping ? LAZY_CONSERVATIVE : CONSERVATIVE;
if (AreSweeperThreadsActivated()) how_to_sweep = PARALLEL_CONSERVATIVE;
if (FLAG_expose_gc) how_to_sweep = CONSERVATIVE;
if (sweep_precisely_) how_to_sweep = PRECISE;
if (AreSweeperThreadsActivated()) how_to_sweep = PARALLEL_CONSERVATIVE;
// Noncompacting collections simply sweep the spaces to clear the mark
// bits and free the nonlive blocks (for old and map spaces). We sweep
// the map space last because freeing non-live maps overwrites them and
@ -3860,7 +3861,7 @@ void MarkCompactCollector::SweepSpaces() {
EvacuateNewSpaceAndCandidates();
if (AreSweeperThreadsActivated()) {
if (how_to_sweep == PARALLEL_CONSERVATIVE) {
// TODO(hpayer): The starting of the sweeper threads should be after
// SweepSpace old data space.
StartSweeperThreads();