| Index: src/mark-compact.cc | 
| =================================================================== | 
| --- src/mark-compact.cc	(revision 10568) | 
| +++ src/mark-compact.cc	(working copy) | 
| @@ -2919,8 +2919,7 @@ | 
| for ( ; live_objects != 0; live_objects--) { | 
| Address free_end = object_address + offsets[live_index++] * kPointerSize; | 
| if (free_end != free_start) { | 
| -        space->AddToFreeLists(free_start, | 
| -                              static_cast<int>(free_end - free_start)); | 
| +        space->Free(free_start, static_cast<int>(free_end - free_start)); | 
| } | 
| HeapObject* live_object = HeapObject::FromAddress(free_end); | 
| ASSERT(Marking::IsBlack(Marking::MarkBitFrom(live_object))); | 
| @@ -2946,8 +2945,7 @@ | 
| cells[cell_index] = 0; | 
| } | 
| if (free_start != p->ObjectAreaEnd()) { | 
| -    space->AddToFreeLists(free_start, | 
| -                          static_cast<int>(p->ObjectAreaEnd() - free_start)); | 
| +    space->Free(free_start, static_cast<int>(p->ObjectAreaEnd() - free_start)); | 
| } | 
| p->ResetLiveBytes(); | 
| } | 
| @@ -3240,9 +3238,7 @@ | 
| Page* p = evacuation_candidates_[i]; | 
| if (!p->IsEvacuationCandidate()) continue; | 
| PagedSpace* space = static_cast<PagedSpace*>(p->owner()); | 
| -    space->AddToFreeLists( | 
| -        p->ObjectAreaStart(), | 
| -        static_cast<int>(p->ObjectAreaEnd() - p->ObjectAreaStart())); | 
| +    space->Free(p->ObjectAreaStart(), Page::kObjectAreaSize); | 
| p->set_scan_on_scavenge(false); | 
| slots_buffer_allocator_.DeallocateChain(p->slots_buffer_address()); | 
| p->ClearEvacuationCandidate(); | 
| @@ -3559,8 +3555,8 @@ | 
| } | 
| size_t size = block_address - p->ObjectAreaStart(); | 
| if (cell_index == last_cell_index) { | 
| -    freed_bytes += static_cast<int>(space->AddToFreeLists( | 
| -        p->ObjectAreaStart(), static_cast<int>(size))); | 
| +    freed_bytes += static_cast<int>(space->Free(p->ObjectAreaStart(), | 
| +                                                static_cast<int>(size))); | 
| ASSERT_EQ(0, p->LiveBytes()); | 
| return freed_bytes; | 
| } | 
| @@ -3569,8 +3565,8 @@ | 
| Address free_end = StartOfLiveObject(block_address, cells[cell_index]); | 
| // Free the first free space. | 
| size = free_end - p->ObjectAreaStart(); | 
| -  freed_bytes += space->AddToFreeLists(p->ObjectAreaStart(), | 
| -                                       static_cast<int>(size)); | 
| +  freed_bytes += space->Free(p->ObjectAreaStart(), | 
| +                             static_cast<int>(size)); | 
| // The start of the current free area is represented in undigested form by | 
| // the address of the last 32-word section that contained a live object and | 
| // the marking bitmap for that cell, which describes where the live object | 
| @@ -3599,8 +3595,8 @@ | 
| // so now we need to find the start of the first live object at the | 
| // end of the free space. | 
| free_end = StartOfLiveObject(block_address, cell); | 
| -          freed_bytes += space->AddToFreeLists( | 
| -              free_start, static_cast<int>(free_end - free_start)); | 
| +          freed_bytes += space->Free(free_start, | 
| +                                     static_cast<int>(free_end - free_start)); | 
| } | 
| } | 
| // Update our undigested record of where the current free area started. | 
| @@ -3614,8 +3610,8 @@ | 
| // Handle the free space at the end of the page. | 
| if (block_address - free_start > 32 * kPointerSize) { | 
| free_start = DigestFreeStart(free_start, free_start_cell); | 
| -    freed_bytes += space->AddToFreeLists( | 
| -        free_start, static_cast<int>(block_address - free_start)); | 
| +    freed_bytes += space->Free(free_start, | 
| +                               static_cast<int>(block_address - free_start)); | 
| } | 
|  | 
| p->ResetLiveBytes(); | 
|  |