| Index: src/heap-inl.h
|
| diff --git a/src/heap-inl.h b/src/heap-inl.h
|
| index 8f6fb989eb71b2d23240f78b0edf593a246c07d9..b1802b5817f5ccd40afa3e5d5979ce5982b47ae4 100644
|
| --- a/src/heap-inl.h
|
| +++ b/src/heap-inl.h
|
| @@ -192,6 +192,7 @@ bool Heap::ShouldBePromoted(Address old_address, int object_size) {
|
|
|
|
|
| void Heap::RecordWrite(Address address, int offset) {
|
| + if (FLAG_new_gc) return;
|
| if (new_space_.Contains(address)) return;
|
| ASSERT(!new_space_.FromSpaceContains(address));
|
| SLOW_ASSERT(Contains(address + offset));
|
| @@ -200,6 +201,7 @@ void Heap::RecordWrite(Address address, int offset) {
|
|
|
|
|
| void Heap::RecordWrites(Address address, int start, int len) {
|
| + if (FLAG_new_gc) return;
|
| if (new_space_.Contains(address)) return;
|
| ASSERT(!new_space_.FromSpaceContains(address));
|
| Page* page = Page::FromAddress(address);
|
| @@ -253,6 +255,11 @@ void Heap::CopyBlock(Address dst, Address src, int byte_size) {
|
| void Heap::CopyBlockToOldSpaceAndUpdateRegionMarks(Address dst,
|
| Address src,
|
| int byte_size) {
|
| + if (FLAG_new_gc) {
|
| + CopyBlock(dst, src, byte_size);
|
| + return;
|
| + }
|
| +
|
| ASSERT(IsAligned(byte_size, kPointerSize));
|
|
|
| Page* page = Page::FromAddress(dst);
|
| @@ -305,7 +312,11 @@ void Heap::MoveBlockToOldSpaceAndUpdateRegionMarks(Address dst,
|
| ASSERT((dst >= (src + byte_size)) ||
|
| ((OffsetFrom(src) - OffsetFrom(dst)) >= kPointerSize));
|
|
|
| - CopyBlockToOldSpaceAndUpdateRegionMarks(dst, src, byte_size);
|
| + if (FLAG_new_gc) {
|
| + MoveBlock(dst, src, byte_size);
|
| + } else {
|
| + CopyBlockToOldSpaceAndUpdateRegionMarks(dst, src, byte_size);
|
| + }
|
| }
|
|
|
|
|
|
|