Chromium Code Reviews| Index: src/heap-profiler.h |
| diff --git a/src/heap-profiler.h b/src/heap-profiler.h |
| index 13e605b12d38da21964cd6ff3459178cbf2aabe2..3dd5b4d0e7d031034836f90c163a824236cb7924 100644 |
| --- a/src/heap-profiler.h |
| +++ b/src/heap-profiler.h |
| @@ -30,12 +30,12 @@ |
| #include "heap-snapshot-generator-inl.h" |
| #include "isolate.h" |
| +#include "smart-pointers.h" |
| namespace v8 { |
| namespace internal { |
| class HeapSnapshot; |
| -class HeapSnapshotsCollection; |
| class HeapProfiler { |
| public: |
| @@ -55,12 +55,16 @@ class HeapProfiler { |
| void StartHeapObjectsTracking(bool track_allocations); |
| void StopHeapObjectsTracking(); |
| + AllocationTracker* allocation_tracker() { return *allocation_tracker_; } |
|
alph
2013/12/03 09:20:20
Using operator* to extract a pointer makes brain d
yurys
2013/12/03 09:41:31
I was going to do this and some other changes to t
|
| + HeapObjectsMap* heap_object_map() { return *ids_; } |
| + StringsStorage* names() { return *names_; } |
| SnapshotObjectId PushHeapObjectsStats(OutputStream* stream); |
| int GetSnapshotsCount(); |
| HeapSnapshot* GetSnapshot(int index); |
| SnapshotObjectId GetSnapshotObjectId(Handle<Object> obj); |
| void DeleteAllSnapshots(); |
| + void RemoveSnapshot(HeapSnapshot* snapshot); |
| void ObjectMoveEvent(Address from, Address to, int size); |
| @@ -76,19 +80,20 @@ class HeapProfiler { |
| void SetRetainedObjectInfo(UniqueId id, RetainedObjectInfo* info); |
| bool is_tracking_object_moves() const { return is_tracking_object_moves_; } |
| - bool is_tracking_allocations() const { return is_tracking_allocations_; } |
| + bool is_tracking_allocations() { return !allocation_tracker_.is_empty(); } |
| - int FindUntrackedObjects() { |
| - return snapshots_->FindUntrackedObjects(); |
| - } |
| + Handle<HeapObject> FindHeapObjectById(SnapshotObjectId id); |
| private: |
| - Heap* heap() const { return snapshots_->heap(); } |
| + Heap* heap() const { return ids_->heap(); } |
| - HeapSnapshotsCollection* snapshots_; |
| + // Mapping from HeapObject addresses to objects' uids. |
| + SmartPointer<HeapObjectsMap> ids_; |
| + List<HeapSnapshot*> snapshots_; |
|
alph
2013/12/03 09:20:20
Is it possible to use List of SmartPointer's?
yurys
2013/12/03 09:41:31
No, it wouldn't work as ~List wouldn't call destru
|
| + SmartPointer<StringsStorage> names_; |
| unsigned next_snapshot_uid_; |
| List<v8::HeapProfiler::WrapperInfoCallback> wrapper_callbacks_; |
| - bool is_tracking_allocations_; |
| + SmartPointer<AllocationTracker> allocation_tracker_; |
| bool is_tracking_object_moves_; |
| }; |