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_; } |
+ 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_; |
+ 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_; |
}; |