| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index 591012805b0c8c44d3009c2deb5ed80ceeae81cb..81d6cafe765afc694d9bf0c6eaef59bc6607126a 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -798,14 +798,16 @@ MaybeObject* Object::GetProperty(String* key, PropertyAttributes* attributes) {
|
| // CONDITIONAL_WRITE_BARRIER must be issued after the actual
|
| // write due to the assert validating the written value.
|
| #define CONDITIONAL_WRITE_BARRIER(object, offset, mode) \
|
| - if (mode == UPDATE_WRITE_BARRIER) { \
|
| - Heap::RecordWrite(object->address(), offset); \
|
| - } else { \
|
| - ASSERT(mode == SKIP_WRITE_BARRIER); \
|
| - ASSERT(Heap::InNewSpace(object) || \
|
| - !Heap::InNewSpace(READ_FIELD(object, offset)) || \
|
| - Page::FromAddress(object->address())-> \
|
| - IsRegionDirty(object->address() + offset)); \
|
| + if (!FLAG_new_gc) { \
|
| + if (mode == UPDATE_WRITE_BARRIER) { \
|
| + Heap::RecordWrite(object->address(), offset); \
|
| + } else { \
|
| + ASSERT(mode == SKIP_WRITE_BARRIER); \
|
| + ASSERT(Heap::InNewSpace(object) || \
|
| + !Heap::InNewSpace(READ_FIELD(object, offset)) || \
|
| + Page::FromAddress(object->address())-> \
|
| + IsRegionDirty(object->address() + offset)); \
|
| + } \
|
| }
|
|
|
| #define READ_DOUBLE_FIELD(p, offset) \
|
| @@ -1018,6 +1020,7 @@ void MapWord::ClearOverflow() {
|
|
|
|
|
| MapWord MapWord::EncodeAddress(Address map_address, int offset) {
|
| + ASSERT(!FLAG_new_gc);
|
| // Offset is the distance in live bytes from the first live object in the
|
| // same page. The offset between two objects in the same page should not
|
| // exceed the object area size of a page.
|
|
|