Index: src/mark-compact.cc |
diff --git a/src/mark-compact.cc b/src/mark-compact.cc |
index 7eeb244df0d8d64bc72b37c1efe4030ad32b455d..e9bd15afb9733eecaff0517180fc92e335b8c448 100644 |
--- a/src/mark-compact.cc |
+++ b/src/mark-compact.cc |
@@ -2146,7 +2146,10 @@ void MarkCompactCollector::MarkStringTable(RootMarkingVisitor* visitor) { |
StringTable* string_table = heap()->string_table(); |
// Mark the string table itself. |
MarkBit string_table_mark = Marking::MarkBitFrom(string_table); |
- SetMark(string_table, string_table_mark); |
+ if (!string_table_mark.Get()) { |
+ // String table could have already been marked by visiting the handles list. |
+ SetMark(string_table, string_table_mark); |
+ } |
// Explicitly mark the prefix. |
string_table->IteratePrefix(visitor); |
ProcessMarkingDeque(); |