| Index: src/mark-compact.cc
|
| diff --git a/src/mark-compact.cc b/src/mark-compact.cc
|
| index c37e54dd6cf15381c580ab4f22d167c2d5969590..e828f9c7ce8d3a39280388907de90eba9f7fb40c 100644
|
| --- a/src/mark-compact.cc
|
| +++ b/src/mark-compact.cc
|
| @@ -3854,22 +3854,21 @@ void MarkCompactCollector::SweepSpaces() {
|
| SweepSpace(heap()->old_pointer_space(), how_to_sweep);
|
| SweepSpace(heap()->old_data_space(), how_to_sweep);
|
|
|
| - RemoveDeadInvalidatedCode();
|
| - SweepSpace(heap()->code_space(), PRECISE);
|
| -
|
| - SweepSpace(heap()->cell_space(), PRECISE);
|
| -
|
| - EvacuateNewSpaceAndCandidates();
|
| -
|
| if (how_to_sweep == PARALLEL_CONSERVATIVE) {
|
| - // TODO(hpayer): The starting of the sweeper threads should be after
|
| - // SweepSpace old data space.
|
| + // TODO(hpayer): fix race with concurrent sweeper
|
| StartSweeperThreads();
|
| if (FLAG_parallel_sweeping && !FLAG_concurrent_sweeping) {
|
| WaitUntilSweepingCompleted();
|
| }
|
| }
|
|
|
| + RemoveDeadInvalidatedCode();
|
| + SweepSpace(heap()->code_space(), PRECISE);
|
| +
|
| + SweepSpace(heap()->cell_space(), PRECISE);
|
| +
|
| + EvacuateNewSpaceAndCandidates();
|
| +
|
| // ClearNonLiveTransitions depends on precise sweeping of map space to
|
| // detect whether unmarked map became dead in this collection or in one
|
| // of the previous ones.
|
|
|