Ignore external strings in old pointer space migration invariant check.
authorhpayer@chromium.org <hpayer@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 25 Jul 2013 12:10:45 +0000 (12:10 +0000)
committerhpayer@chromium.org <hpayer@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 25 Jul 2013 12:10:45 +0000 (12:10 +0000)
BUG=
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/20142008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/mark-compact.cc

index fb546bf..59492e1 100644 (file)
@@ -2742,8 +2742,9 @@ void MarkCompactCollector::MigrateObject(Address dst,
   CHECK(dest != LO_SPACE && size <= Page::kMaxNonCodeHeapObjectSize);
   if (dest == OLD_POINTER_SPACE) {
     // TODO(hpayer): Replace this check with an assert.
-    CHECK(heap_->TargetSpace(HeapObject::FromAddress(src)) ==
-          heap_->old_pointer_space());
+    HeapObject* heap_object = HeapObject::FromAddress(src);
+    CHECK(heap_object->IsExternalString() ||
+          heap_->TargetSpace(heap_object) == heap_->old_pointer_space());
     Address src_slot = src;
     Address dst_slot = dst;
     ASSERT(IsAligned(size, kPointerSize));