}
-inline uint64_t HeapEntry::id() {
- return *(reinterpret_cast<uint64_t*>(&id_));
-}
-
-
template<class Visitor>
void HeapEntriesMap::UpdateEntries(Visitor* visitor) {
for (HashMap::Entry* p = entries_.Start();
type_ = type;
painted_ = kUnpainted;
name_ = name;
- *(reinterpret_cast<uint64_t*>(&id_)) = id;
+ id_ = id;
self_size_ = self_size;
retained_size_ = 0;
children_count_ = children_count;
void HeapEntry::Print(int max_depth, int indent) {
- OS::Print("%6d %6d [%llu] ", self_size(), RetainedSize(false), id());
+ OS::Print("%6d %6d [%llu] ", self_size(), RetainedSize(false), id_);
if (type() != kString) {
OS::Print("%s %.40s\n", TypeAsString(), name_);
} else {
HeapSnapshot* snapshot() { return snapshot_; }
Type type() { return static_cast<Type>(type_); }
const char* name() { return name_; }
- uint64_t id();
+ uint64_t id() { return id_; }
int self_size() { return self_size_; }
int retained_size() { return retained_size_; }
void add_retained_size(int size) { retained_size_ += size; }
};
HeapEntry* dominator_;
HeapSnapshot* snapshot_;
- struct Id {
- uint32_t id1_;
- uint32_t id2_;
- } id_; // This is to avoid extra padding of 64-bit value on MSVC.
const char* name_;
+ uint64_t id_;
// Paints used for exact retained sizes calculation.
static const unsigned kUnpainted = 0;