Index: src/heap/mark-compact-inl.h |
diff --git a/src/heap/mark-compact-inl.h b/src/heap/mark-compact-inl.h |
index 8861241df019528d05de4fc849cb6b68f3d59969..a021c2f579c40abefb1fb65d7687cf4d61069699 100644 |
--- a/src/heap/mark-compact-inl.h |
+++ b/src/heap/mark-compact-inl.h |
@@ -179,9 +179,13 @@ HeapObject* LiveObjectIterator<T>::Next() { |
// We found a live object. |
if (object != nullptr) { |
- if (map == heap()->one_pointer_filler_map()) { |
- // Black areas together with slack tracking may result in black one |
- // word filler objects. We filter these objects out in the iterator. |
+ if (object->IsFiller()) { |
+ // There are two reasons whwy we can get black or grey fillers: |
ulan
2017/03/07 14:48:05
s/whhy/why
Hannes Payer (out of office)
2017/03/07 14:49:59
Done.
|
+ // 1) Black areas together with slack tracking may result in black one |
+ // word filler objects. |
+ // 2) Left trimming may leave black or grey fillers behind because we |
+ // do not clear the old location of the object start. |
+ // We filter these objects out in the iterator. |
object = nullptr; |
} else { |
break; |