Index: Source/platform/heap/Heap.h |
diff --git a/Source/platform/heap/Heap.h b/Source/platform/heap/Heap.h |
index ea3aa4685c6c11556a45cbf20d024f42c36b942c..7cedef1c99621ec10c056acfdb2edfb7192f2f80 100644 |
--- a/Source/platform/heap/Heap.h |
+++ b/Source/platform/heap/Heap.h |
@@ -95,6 +95,7 @@ class FreePagePool; |
class NormalPageHeap; |
class OrphanedPagePool; |
class PageMemory; |
+class WebProcessMemoryDump; |
#if ENABLE(GC_PROFILING) |
class TracedValue; |
@@ -401,6 +402,8 @@ public: |
// the stack. |
virtual void checkAndMarkPointer(Visitor*, Address) = 0; |
virtual void markOrphaned(); |
+ |
+ virtual void takeSnapshot(String dumpName, size_t pageIndex, ThreadState::GCSnapshotInfo&) = 0; |
#if ENABLE(GC_PROFILING) |
virtual const GCInfo* findGCInfo(Address) = 0; |
virtual void snapshot(TracedValue*, ThreadState::SnapshotInfo*) = 0; |
@@ -481,6 +484,8 @@ public: |
#endif |
virtual void checkAndMarkPointer(Visitor*, Address) override; |
virtual void markOrphaned() override; |
+ |
+ void takeSnapshot(String dumpBaseName, size_t pageIndex, ThreadState::GCSnapshotInfo&) override; |
#if ENABLE(GC_PROFILING) |
const GCInfo* findGCInfo(Address) override; |
void snapshot(TracedValue*, ThreadState::SnapshotInfo*) override; |
@@ -545,6 +550,7 @@ public: |
virtual void checkAndMarkPointer(Visitor*, Address) override; |
virtual void markOrphaned() override; |
+ void takeSnapshot(String dumpBaseName, size_t pageIndex, ThreadState::GCSnapshotInfo&) override; |
#if ENABLE(GC_PROFILING) |
const GCInfo* findGCInfo(Address) override; |
void snapshot(TracedValue*, ThreadState::SnapshotInfo*) override; |
@@ -650,6 +656,7 @@ public: |
// All FreeListEntries in the given bucket, n, have size >= 2^n. |
static int bucketIndexForSize(size_t); |
+ void takeSnapshot(const String& dumpBaseName); |
#if ENABLE(GC_PROFILING) |
struct PerBucketFreeListStats { |
size_t entryCount; |
@@ -683,10 +690,11 @@ public: |
virtual ~BaseHeap(); |
void cleanupPages(); |
- void takeSnapshot(const String& dumpBaseName); |
+ void takeSnapshot(const String& dumpBaseName, ThreadState::GCSnapshotInfo&); |
#if ENABLE(ASSERT) || ENABLE(GC_PROFILING) |
BasePage* findPageFromAddress(Address); |
#endif |
+ virtual void takeFreelistSnapshot(const String& dumpBaseName) { }; |
#if ENABLE(GC_PROFILING) |
void snapshot(TracedValue*, ThreadState::SnapshotInfo*); |
virtual void snapshotFreeList(TracedValue&) { }; |
@@ -746,6 +754,7 @@ public: |
virtual bool isConsistentForGC() override; |
bool pagesToBeSweptContains(Address); |
#endif |
+ void takeFreelistSnapshot(const String& dumpBaseName) override; |
#if ENABLE(GC_PROFILING) |
void snapshotFreeList(TracedValue&) override; |
#endif |