| Index: src/heap/mark-compact.cc
|
| diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc
|
| index 01dabaf2a1dd66e210bd24ca589105e8435b0570..e0dad0abe67dddf8afbbed7d9e463cfc6053e94a 100644
|
| --- a/src/heap/mark-compact.cc
|
| +++ b/src/heap/mark-compact.cc
|
| @@ -3059,7 +3059,8 @@ bool MarkCompactCollector::TryPromoteObject(HeapObject* object,
|
|
|
| bool MarkCompactCollector::IsSlotInBlackObject(Page* p, Address slot) {
|
| // This function does not support large objects right now.
|
| - if (p->owner() == NULL) return true;
|
| + Space* owner = p->owner();
|
| + if (owner == heap_->lo_space() || owner == NULL) return true;
|
|
|
| uint32_t mark_bit_index = p->AddressToMarkbitIndex(slot);
|
| unsigned int start_index = mark_bit_index >> Bitmap::kBitsPerCellLog2;
|
| @@ -3121,7 +3122,8 @@ bool MarkCompactCollector::IsSlotInBlackObject(Page* p, Address slot) {
|
|
|
| bool MarkCompactCollector::IsSlotInBlackObjectSlow(Page* p, Address slot) {
|
| // This function does not support large objects right now.
|
| - if (p->owner() == NULL) return true;
|
| + Space* owner = p->owner();
|
| + if (owner == heap_->lo_space() || owner == NULL) return true;
|
|
|
| for (MarkBitCellIterator it(p); !it.Done(); it.Advance()) {
|
| Address cell_base = it.CurrentCellBase();
|
|
|