| Index: src/heap-inl.h
|
| ===================================================================
|
| --- src/heap-inl.h (revision 6207)
|
| +++ src/heap-inl.h (working copy)
|
| @@ -325,32 +325,23 @@
|
| }
|
|
|
|
|
| -void Heap::CopyBlockToOldSpaceAndUpdateRegionMarks(Address dst,
|
| - Address src,
|
| - int byte_size) {
|
| -#ifdef ENABLE_CARDMARKING_WRITE_BARRIER
|
| +void Heap::CopyBlockToOldSpaceAndUpdateWriteBarrier(Address dst,
|
| + Address src,
|
| + int byte_size) {
|
| ASSERT(IsAligned(byte_size, kPointerSize));
|
|
|
| - Page* page = Page::FromAddress(dst);
|
| - uint32_t marks = page->GetRegionMarks();
|
| -
|
| for (int remaining = byte_size / kPointerSize;
|
| remaining > 0;
|
| remaining--) {
|
| Memory::Object_at(dst) = Memory::Object_at(src);
|
|
|
| if (Heap::InNewSpace(Memory::Object_at(dst))) {
|
| - marks |= page->GetRegionMaskForAddress(dst);
|
| + StoreBuffer::Mark(dst);
|
| }
|
|
|
| dst += kPointerSize;
|
| src += kPointerSize;
|
| }
|
| -
|
| - page->SetRegionMarks(marks);
|
| -#else
|
| - CopyBlock(dst, src, byte_size);
|
| -#endif
|
| }
|
|
|
|
|
| @@ -377,21 +368,6 @@
|
| }
|
|
|
|
|
| -void Heap::MoveBlockToOldSpaceAndUpdateRegionMarks(Address dst,
|
| - Address src,
|
| - int byte_size) {
|
| - ASSERT(IsAligned(byte_size, kPointerSize));
|
| - ASSERT((dst >= (src + byte_size)) ||
|
| - ((OffsetFrom(src) - OffsetFrom(dst)) >= kPointerSize));
|
| -
|
| -#ifdef ENABLE_CARDMARKING_WRITE_BARRIER
|
| - CopyBlockToOldSpaceAndUpdateRegionMarks(dst, src, byte_size);
|
| -#else
|
| - MoveBlock(dst, src, byte_size);
|
| -#endif
|
| -}
|
| -
|
| -
|
| void Heap::ScavengeObject(HeapObject** p, HeapObject* object) {
|
| ASSERT(InFromSpace(object));
|
|
|
|
|