Commit d6126a0a authored by hpayer@chromium.org's avatar hpayer@chromium.org

Added check to debug object migration crashes.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 92ce5272
......@@ -2724,7 +2724,21 @@ void MarkCompactCollector::MigrateObject(Address dst,
HEAP_PROFILE(heap(), ObjectMoveEvent(src, dst));
// TODO(hpayer): Replace that check with an assert.
CHECK(dest != LO_SPACE && size <= Page::kMaxNonCodeHeapObjectSize);
// Objects in old pointer space and old data space can just be moved by
// compaction to a different page in the same space.
// TODO(hpayer): Replace that following checks with asserts.
CHECK(!heap_->old_pointer_space()->Contains(src) ||
(heap_->old_pointer_space()->Contains(dst) &&
heap_->TargetSpace(HeapObject::FromAddress(src)) ==
heap_->old_pointer_space()));
CHECK(!heap_->old_data_space()->Contains(src) ||
(heap_->old_data_space()->Contains(dst) &&
heap_->TargetSpace(HeapObject::FromAddress(src)) ==
heap_->old_data_space()));
if (dest == OLD_POINTER_SPACE) {
// TODO(hpayer): Replace this check with an assert.
CHECK(heap_->TargetSpace(HeapObject::FromAddress(src)) ==
heap_->old_pointer_space());
Address src_slot = src;
Address dst_slot = dst;
ASSERT(IsAligned(size, kPointerSize));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment