[in-place weak refs] Fix overzealous DCHECK.

BUG=v8:7308,v8:7567

Change-Id: I031c11817686570c8fa5fa772691cd90c54d9ab2
Reviewed-on: https://chromium-review.googlesource.com/966029
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51992}
This commit is contained in:
Marja Hölttä 2018-03-16 10:47:11 +01:00 committed by Commit Bot
parent 8a94f074de
commit 1516f3f25e

View File

@ -144,6 +144,7 @@ class ConcurrentMarkingVisitor final
for (int i = 0; i < snapshot.number_of_slots(); i++) {
Object** slot = snapshot.slot(i);
Object* object = snapshot.value(i);
DCHECK(!Internals::HasWeakHeapObjectTag(object));
if (!object->IsHeapObject()) continue;
MarkObject(HeapObject::cast(object));
MarkCompactCollector::RecordSlot(host, slot, object);
@ -375,7 +376,6 @@ class ConcurrentMarkingVisitor final
for (Object** p = start; p < end; p++) {
Object* object = reinterpret_cast<Object*>(
base::Relaxed_Load(reinterpret_cast<const base::AtomicWord*>(p)));
DCHECK(!Internals::HasWeakHeapObjectTag(object));
slot_snapshot_->add(p, object);
}
}