Commit ca2f8d81 authored by jochen's avatar jochen Committed by Commit bot

Add CHECKs to verify that we never finalize stale copies of external strings

BUG=none
R=ulan@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28811}
parent 8f4d9a0a
......@@ -1679,13 +1679,20 @@ class StringTableCleaner : public ObjectVisitor {
if (o->IsHeapObject() &&
Marking::IsWhite(Marking::MarkBitFrom(HeapObject::cast(o)))) {
if (finalize_external_strings) {
DCHECK(o->IsExternalString());
// We must never finalize a string that was copied (has a forwarding
// map).
CHECK(o->IsExternalString());
heap_->FinalizeExternalString(String::cast(*p));
} else {
pointers_removed_++;
}
// Set the entry to the_hole_value (as deleted).
*p = heap_->the_hole_value();
} else {
// Anything in the external string table has to be either a string or
// the hole.
CHECK(!finalize_external_strings || o->IsExternalString() ||
o->IsTheHole());
}
}
}
......
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