Index: src/heap-snapshot-generator.h |
diff --git a/src/heap-snapshot-generator.h b/src/heap-snapshot-generator.h |
index e55513f890dad9366f79f7017490eddb9ac5d396..b33b7f001b550ca90092fe0852290fbcf5b9bcbd 100644 |
--- a/src/heap-snapshot-generator.h |
+++ b/src/heap-snapshot-generator.h |
@@ -154,21 +154,19 @@ class HeapEntry BASE_EMBEDDED { |
}; |
-class HeapSnapshotsCollection; |
- |
// HeapSnapshot represents a single heap snapshot. It is stored in |
-// HeapSnapshotsCollection, which is also a factory for |
+// HeapProfiler, which is also a factory for |
// HeapSnapshots. All HeapSnapshots share strings copied from JS heap |
// to be able to return them even if they were collected. |
// HeapSnapshotGenerator fills in a HeapSnapshot. |
class HeapSnapshot { |
public: |
- HeapSnapshot(HeapSnapshotsCollection* collection, |
+ HeapSnapshot(HeapProfiler* profiler, |
const char* title, |
unsigned uid); |
void Delete(); |
- HeapSnapshotsCollection* collection() { return collection_; } |
+ HeapProfiler* profiler() { return profiler_; } |
const char* title() { return title_; } |
unsigned uid() { return uid_; } |
size_t RawSnapshotSize() const; |
@@ -202,7 +200,7 @@ class HeapSnapshot { |
void PrintEntriesSize(); |
private: |
- HeapSnapshotsCollection* collection_; |
+ HeapProfiler* profiler_; |
const char* title_; |
unsigned uid_; |
int root_index_; |
@@ -227,7 +225,6 @@ class HeapObjectsMap { |
Heap* heap() const { return heap_; } |
- void SnapshotGenerationFinished(); |
SnapshotObjectId FindEntry(Address addr); |
SnapshotObjectId FindOrAddEntry(Address addr, |
unsigned int size, |
@@ -242,7 +239,7 @@ class HeapObjectsMap { |
SnapshotObjectId PushHeapObjectsStats(OutputStream* stream); |
size_t GetUsedMemorySize() const; |
- static SnapshotObjectId GenerateId(Heap* heap, v8::RetainedObjectInfo* info); |
+ SnapshotObjectId GenerateId(v8::RetainedObjectInfo* info); |
static inline SnapshotObjectId GetNthGcSubrootId(int delta); |
static const int kObjectIdStep = 2; |
@@ -255,6 +252,7 @@ class HeapObjectsMap { |
int FindUntrackedObjects(); |
void UpdateHeapObjectsMap(); |
+ void RemoveDeadEntries(); |
private: |
struct EntryInfo { |
@@ -274,8 +272,6 @@ class HeapObjectsMap { |
uint32_t count; |
}; |
- void RemoveDeadEntries(); |
- |
SnapshotObjectId next_id_; |
HashMap entries_map_; |
List<EntryInfo> entries_; |
@@ -286,59 +282,6 @@ class HeapObjectsMap { |
}; |
-class HeapSnapshotsCollection { |
- public: |
- explicit HeapSnapshotsCollection(Heap* heap); |
- ~HeapSnapshotsCollection(); |
- |
- Heap* heap() const { return ids_.heap(); } |
- |
- SnapshotObjectId PushHeapObjectsStats(OutputStream* stream) { |
- return ids_.PushHeapObjectsStats(stream); |
- } |
- void StartHeapObjectsTracking(bool track_allocations); |
- void StopHeapObjectsTracking(); |
- |
- HeapSnapshot* NewSnapshot(const char* name, unsigned uid); |
- void SnapshotGenerationFinished(HeapSnapshot* snapshot); |
- List<HeapSnapshot*>* snapshots() { return &snapshots_; } |
- void RemoveSnapshot(HeapSnapshot* snapshot); |
- |
- StringsStorage* names() { return &names_; } |
- AllocationTracker* allocation_tracker() { return allocation_tracker_; } |
- |
- SnapshotObjectId FindObjectId(Address object_addr) { |
- return ids_.FindEntry(object_addr); |
- } |
- SnapshotObjectId GetObjectId(Address object_addr, int object_size) { |
- return ids_.FindOrAddEntry(object_addr, object_size); |
- } |
- Handle<HeapObject> FindHeapObjectById(SnapshotObjectId id); |
- void ObjectMoveEvent(Address from, Address to, int size) { |
- ids_.MoveObject(from, to, size); |
- } |
- void AllocationEvent(Address addr, int size); |
- void UpdateObjectSizeEvent(Address addr, int size) { |
- ids_.UpdateObjectSize(addr, size); |
- } |
- SnapshotObjectId last_assigned_id() const { |
- return ids_.last_assigned_id(); |
- } |
- size_t GetUsedMemorySize() const; |
- |
- int FindUntrackedObjects() { return ids_.FindUntrackedObjects(); } |
- |
- private: |
- List<HeapSnapshot*> snapshots_; |
- StringsStorage names_; |
- // Mapping from HeapObject addresses to objects' uids. |
- HeapObjectsMap ids_; |
- AllocationTracker* allocation_tracker_; |
- |
- DISALLOW_COPY_AND_ASSIGN(HeapSnapshotsCollection); |
-}; |
- |
- |
// A typedef for referencing anything that can be snapshotted living |
// in any kind of heap memory. |
typedef void* HeapThing; |
@@ -531,7 +474,8 @@ class V8HeapExplorer : public HeapEntriesAllocator { |
Heap* heap_; |
HeapSnapshot* snapshot_; |
- HeapSnapshotsCollection* collection_; |
+ StringsStorage* names_; |
+ HeapObjectsMap* heap_object_map_; |
SnapshottingProgressReportingInterface* progress_; |
SnapshotFillerInterface* filler_; |
HeapObjectsSet objects_tags_; |
@@ -592,7 +536,7 @@ class NativeObjectsExplorer { |
Isolate* isolate_; |
HeapSnapshot* snapshot_; |
- HeapSnapshotsCollection* collection_; |
+ StringsStorage* names_; |
SnapshottingProgressReportingInterface* progress_; |
bool embedder_queried_; |
HeapObjectsSet in_groups_; |