Chromium Code Reviews| Index: src/heap-snapshot-generator.h |
| diff --git a/src/heap-snapshot-generator.h b/src/heap-snapshot-generator.h |
| index c323f3cde282de350f88da721630bbbe685d3aee..18e3eacab38a2167c44b9c3dcce3afd9948ba7b9 100644 |
| --- a/src/heap-snapshot-generator.h |
| +++ b/src/heap-snapshot-generator.h |
| @@ -227,8 +227,12 @@ class HeapObjectsMap { |
| void SnapshotGenerationFinished(); |
| SnapshotObjectId FindEntry(Address addr); |
| - SnapshotObjectId FindOrAddEntry(Address addr, unsigned int size); |
| - void MoveObject(Address from, Address to); |
| + SnapshotObjectId FindOrAddEntry(Address addr, |
| + unsigned int size, |
| + bool accessed = true); |
| + void MoveObject(Address from, Address to, int size); |
| + void NewObject(Address addr, int size); |
| + void UpdateObjectSize(Address addr, int size); |
| SnapshotObjectId last_assigned_id() const { |
| return next_id_ - kObjectIdStep; |
| } |
| @@ -247,6 +251,10 @@ class HeapObjectsMap { |
| static const SnapshotObjectId kGcRootsFirstSubrootId; |
| static const SnapshotObjectId kFirstAvailableObjectId; |
| + int FindUntrackedObjects(); |
| + |
| + void UpdateMap(); |
|
yurys
2013/09/25 10:41:12
There is already UpdateHeapObjectsMap which does a
Alexandra Mikhaylova
2013/09/25 14:33:40
Done.
|
| + |
| private: |
| struct EntryInfo { |
| EntryInfo(SnapshotObjectId id, Address addr, unsigned int size) |
| @@ -306,12 +314,22 @@ class HeapSnapshotsCollection { |
| return ids_.FindOrAddEntry(object_addr, object_size); |
| } |
| Handle<HeapObject> FindHeapObjectById(SnapshotObjectId id); |
| - void ObjectMoveEvent(Address from, Address to) { ids_.MoveObject(from, to); } |
| + void ObjectMoveEvent(Address from, Address to, int size) { |
| + ids_.MoveObject(from, to, size); |
| + } |
| + void NewObjectEvent(Address addr, int size) { ids_.NewObject(addr, 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(); } |
| + |
| + void UpdateMap() { ids_.UpdateMap(); } |
| + |
| private: |
| bool is_tracking_objects_; // Whether tracking object moves is needed. |
| List<HeapSnapshot*> snapshots_; |