| 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
|
|
|