Index: src/heap/heap.cc |
diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
index d7b5b627319c5379fc347f3501f16f6da5017747..aca86484bd01b8a1dc372ac0fac8a175dd2b266c 100644 |
--- a/src/heap/heap.cc |
+++ b/src/heap/heap.cc |
@@ -1110,7 +1110,13 @@ |
DCHECK(array->map() != fixed_cow_array_map()); |
Object** dst_objects = array->data_start() + dst_index; |
MemMove(dst_objects, array->data_start() + src_index, len * kPointerSize); |
- FIXED_ARRAY_ELEMENTS_WRITE_BARRIER(this, array, dst_index, src_index); |
+ if (!InNewSpace(array)) { |
+ for (int i = 0; i < len; i++) { |
+ RecordWrite(array, array->OffsetOfElementAt(dst_index + i), |
+ dst_objects[i]); |
+ } |
+ } |
+ incremental_marking()->IterateBlackObject(array); |
} |