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(); |