Reviewers: Hannes Payer,
Description:
Deprecate one virtual marking visitor for mark-compact GC.
[email protected]
Please review this at https://codereview.chromium.org/17546005/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/mark-compact.h
M src/mark-compact.cc
Index: src/mark-compact.cc
diff --git a/src/mark-compact.cc b/src/mark-compact.cc
index
c06bfd7f7323825d4c0f278c04e39260eaf3cc4f..54f1396d2c757c36aa9e5965919eca7fc5e5ed47
100644
--- a/src/mark-compact.cc
+++ b/src/mark-compact.cc
@@ -1713,23 +1713,6 @@
VisitorDispatchTable<MarkCompactMarkingVisitor::Callback>
MarkCompactMarkingVisitor::non_count_table_;
-class MarkingVisitor : public ObjectVisitor {
- public:
- explicit MarkingVisitor(Heap* heap) : heap_(heap) { }
-
- void VisitPointer(Object** p) {
- MarkCompactMarkingVisitor::VisitPointer(heap_, p);
- }
-
- void VisitPointers(Object** start, Object** end) {
- MarkCompactMarkingVisitor::VisitPointers(heap_, start, end);
- }
-
- private:
- Heap* heap_;
-};
-
-
class CodeMarkingVisitor : public ThreadVisitor {
public:
explicit CodeMarkingVisitor(MarkCompactCollector* collector)
@@ -2038,14 +2021,13 @@ bool
MarkCompactCollector::IsUnmarkedHeapObjectWithHeap(Heap* heap,
}
-void MarkCompactCollector::MarkStringTable() {
+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);
// Explicitly mark the prefix.
- MarkingVisitor marker(heap());
- string_table->IteratePrefix(&marker);
+ string_table->IteratePrefix(visitor);
ProcessMarkingDeque();
}
@@ -2056,7 +2038,7 @@ void
MarkCompactCollector::MarkRoots(RootMarkingVisitor* visitor) {
heap()->IterateStrongRoots(visitor, VISIT_ONLY_STRONG);
// Handle the string table specially.
- MarkStringTable();
+ MarkStringTable(visitor);
// There may be overflowed objects in the heap. Visit them now.
while (marking_deque_.overflowed()) {
@@ -3291,11 +3273,9 @@ void
MarkCompactCollector::EvacuateNewSpaceAndCandidates() {
bool code_slots_filtering_required;
{ GCTracer::Scope gc_scope(tracer_, GCTracer::Scope::MC_SWEEP_NEWSPACE);
code_slots_filtering_required = MarkInvalidatedCode();
-
EvacuateNewSpace();
}
-
{ GCTracer::Scope gc_scope(tracer_, GCTracer::Scope::MC_EVACUATE_PAGES);
EvacuatePages();
}
Index: src/mark-compact.h
diff --git a/src/mark-compact.h b/src/mark-compact.h
index
873534c2fa7838e3b28e7dff947069a8b7a021ab..85c30083fe8a2b8c8ae91ca32f770011f22ac0c5
100644
--- a/src/mark-compact.h
+++ b/src/mark-compact.h
@@ -835,7 +835,7 @@ class MarkCompactCollector {
// Mark the string table specially. References to internalized strings
from
// the string table are weak.
- void MarkStringTable();
+ void MarkStringTable(RootMarkingVisitor* visitor);
// Mark objects in implicit references groups if their parent object
// is marked.
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.