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..dd45c382fd4867d6090873b3efed05ff246c2932 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 why we can get black or grey fillers: |
+ // 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; |