Fix windows compilation after r5867. Now linux-friendly.

TBR=sgjesse@chromium.org

Review URL: http://codereview.chromium.org/5216008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
mikhail.naganov@gmail.com 2010-11-22 16:09:14 +00:00
parent 9cf23fc145
commit ec6b6c94f5
3 changed files with 25 additions and 3 deletions

View File

@ -122,6 +122,17 @@ CodeEntry* ProfileGenerator::EntryForVMState(StateTag tag) {
}
#ifdef WIN32
inline uint64_t HeapEntry::id() {
return *(reinterpret_cast<uint64_t*>(&id_));
}
#else
inline uint64_t HeapEntry::id() {
return id_;
}
#endif
template<class Visitor>
void HeapEntriesMap::UpdateEntries(Visitor* visitor) {
for (HashMap::Entry* p = entries_.Start();

View File

@ -870,7 +870,11 @@ void HeapEntry::Init(HeapSnapshot* snapshot,
type_ = type;
painted_ = kUnpainted;
name_ = name;
#ifdef WIN32
*(reinterpret_cast<uint64_t*>(&id_)) = id;
#else
id_ = id;
#endif
self_size_ = self_size;
retained_size_ = 0;
children_count_ = children_count;
@ -952,7 +956,7 @@ void HeapEntry::PaintAllReachable() {
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 {

View File

@ -526,7 +526,7 @@ class HeapEntry BASE_EMBEDDED {
HeapSnapshot* snapshot() { return snapshot_; }
Type type() { return static_cast<Type>(type_); }
const char* name() { return name_; }
uint64_t id() { return id_; }
uint64_t id();
int self_size() { return self_size_; }
int retained_size() { return retained_size_; }
void add_retained_size(int size) { retained_size_ += size; }
@ -615,8 +615,15 @@ class HeapEntry BASE_EMBEDDED {
};
HeapEntry* dominator_;
HeapSnapshot* snapshot_;
const char* name_;
#ifdef WIN32
struct Id {
uint32_t id1_;
uint32_t id2_;
} id_; // This is to avoid extra padding of 64-bit value on MSVC.
#else
uint64_t id_;
#endif
const char* name_;
// Paints used for exact retained sizes calculation.
static const unsigned kUnpainted = 0;