Index: src/profile-generator.h |
diff --git a/src/profile-generator.h b/src/profile-generator.h |
index 96640fd086ee1c5e11ee9eb6450ee37e39a70616..b74217a3ce008d7b6d985fae5d04e2394acbd172 100644 |
--- a/src/profile-generator.h |
+++ b/src/profile-generator.h |
@@ -704,7 +704,8 @@ class HeapObjectsMap { |
~HeapObjectsMap(); |
void SnapshotGenerationFinished(); |
- SnapshotObjectId FindObject(Address addr); |
+ SnapshotObjectId FindEntry(Address addr); |
+ SnapshotObjectId FindOrAddEntry(Address addr, unsigned int size); |
void MoveObject(Address from, Address to); |
SnapshotObjectId last_assigned_id() const { |
return next_id_ - kObjectIdStep; |
@@ -725,23 +726,22 @@ class HeapObjectsMap { |
private: |
struct EntryInfo { |
- EntryInfo(SnapshotObjectId id, Address addr) |
- : id(id), addr(addr), accessed(true) { } |
- EntryInfo(SnapshotObjectId id, Address addr, bool accessed) |
- : id(id), addr(addr), accessed(accessed) { } |
+ EntryInfo(SnapshotObjectId id, Address addr, unsigned int size) |
alexeif
2012/04/13 15:01:27
padding?
|
+ : id(id), addr(addr), size(size), accessed(true) { } |
+ EntryInfo(SnapshotObjectId id, Address addr, unsigned int size, bool accessed) |
alexeif
2012/04/13 15:01:27
why not a default value for accessed?
|
+ : id(id), addr(addr), size(size), accessed(accessed) { } |
SnapshotObjectId id; |
Address addr; |
+ unsigned int size; |
bool accessed; |
}; |
struct TimeInterval { |
- explicit TimeInterval(SnapshotObjectId id) : id(id), count(0) { } |
+ explicit TimeInterval(SnapshotObjectId id) : id(id), size(0), count(0) { } |
SnapshotObjectId id; |
+ unsigned int size; |
uint32_t count; |
}; |
- void AddEntry(Address addr, SnapshotObjectId id); |
- SnapshotObjectId FindEntry(Address addr); |
- SnapshotObjectId FindOrAddEntry(Address addr); |
void UpdateHeapObjectsMap(); |
void RemoveDeadEntries(); |
@@ -787,7 +787,9 @@ class HeapSnapshotsCollection { |
StringsStorage* names() { return &names_; } |
TokenEnumerator* token_enumerator() { return token_enumerator_; } |
- SnapshotObjectId GetObjectId(Address addr) { return ids_.FindObject(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) { ids_.MoveObject(from, to); } |
SnapshotObjectId last_assigned_id() const { |