Index: src/mark-compact.cc |
diff --git a/src/mark-compact.cc b/src/mark-compact.cc |
index 162b3d63957872715ab5d51adbbba7fc61f58fd4..a9e852ef32747ef8e2385353f1f7ffd8c9733587 100644 |
--- a/src/mark-compact.cc |
+++ b/src/mark-compact.cc |
@@ -643,9 +643,13 @@ void MarkCompactCollector::PrepareForCodeFlushing() { |
#endif |
StaticMarkingVisitor::EnableCodeFlushing(true); |
+ // Ensure that empty descriptor array is marked. Method MarkDescriptorArray |
+ // relies on it being marked before any other descriptor array. |
+ MarkObject(Heap::raw_unchecked_empty_descriptor_array()); |
+ |
// Make sure we are not referencing the code from the stack. |
for (StackFrameIterator it; !it.done(); it.Advance()) { |
- MarkCompactCollector::MarkObject(it.frame()->unchecked_code()); |
+ MarkObject(it.frame()->unchecked_code()); |
} |
// Iterate the archived stacks in all threads to check if |
@@ -656,7 +660,7 @@ void MarkCompactCollector::PrepareForCodeFlushing() { |
SharedFunctionInfoMarkingVisitor visitor; |
CompilationCache::IterateFunctions(&visitor); |
- MarkCompactCollector::ProcessMarkingStack(); |
+ ProcessMarkingStack(); |
} |