Index: src/heap/mark-compact.h |
diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h |
index ef72d87296b5b5539ac540c481832ff11b6e889f..55cf0a230d89a75a6798457a2778263df2fba5b9 100644 |
--- a/src/heap/mark-compact.h |
+++ b/src/heap/mark-compact.h |
@@ -16,6 +16,9 @@ namespace internal { |
// to the first live object in the page (only used for old and map objects). |
typedef bool (*IsAliveFunction)(HeapObject* obj, int* size, int* offset); |
+// Callback function to mark an object in a given heap. |
+typedef void (*MarkObjectFunction)(Heap* heap, HeapObject* object); |
+ |
// Forward declarations. |
class CodeFlusher; |
class MarkCompactCollector; |
@@ -550,6 +553,7 @@ class MarkCompactCollector { |
static const uint32_t kMultiFreeEncoding = 1; |
static inline bool IsMarked(Object* obj); |
+ static bool IsUnmarkedHeapObjectWithHeap(Heap* heap, Object** p); |
inline Heap* heap() const { return heap_; } |
inline Isolate* isolate() const; |
@@ -663,6 +667,10 @@ class MarkCompactCollector { |
// to artificially keep AllocationSites alive for a time. |
void MarkAllocationSite(AllocationSite* site); |
+ // Mark objects in implicit references groups if their parent object |
+ // is marked. |
+ void MarkImplicitRefGroups(MarkObjectFunction mark_object); |
+ |
MarkingDeque* marking_deque() { return &marking_deque_; } |
void EnsureMarkingDequeIsCommittedAndInitialize(); |
@@ -671,8 +679,6 @@ class MarkCompactCollector { |
void UncommitMarkingDeque(); |
- void OverApproximateWeakClosure(); |
- |
// The following four methods can just be called after marking, when the |
// whole transitive closure is known. They must be called before sweeping |
// when mark bits are still intact. |
@@ -776,10 +782,6 @@ class MarkCompactCollector { |
// the string table are weak. |
void MarkStringTable(RootMarkingVisitor* visitor); |
- // Mark objects in implicit references groups if their parent object |
- // is marked. |
- void MarkImplicitRefGroups(); |
- |
// Mark objects reachable (transitively) from objects in the marking stack |
// or overflowed in the heap. |
void ProcessMarkingDeque(); |
@@ -816,7 +818,6 @@ class MarkCompactCollector { |
// Callback function for telling whether the object *p is an unmarked |
// heap object. |
static bool IsUnmarkedHeapObject(Object** p); |
- static bool IsUnmarkedHeapObjectWithHeap(Heap* heap, Object** p); |
// Map transitions from a live map to a dead map must be killed. |
// We replace them with a null descriptor, with the same key. |