Reviewers: Mikhail Naganov (Chromium), Yury Semikhatsky, loislo,
Description:
Set object tags directly to the entry name in heap profiler.
Please review this at https://chromiumcodereview.appspot.com/10382106/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/profile-generator.h
M src/profile-generator.cc
Index: src/profile-generator.cc
diff --git a/src/profile-generator.cc b/src/profile-generator.cc
index
3f4e935b04b6df12c987259b4c2dc1e071be1d73..b31b77b42f2d43762f7cb141a2f46167c743f140
100644
--- a/src/profile-generator.cc
+++ b/src/profile-generator.cc
@@ -1710,8 +1710,7 @@ HeapEntry* V8HeapExplorer::AddEntry(HeapObject*
object) {
object->IsFixedDoubleArray() ||
object->IsByteArray() ||
object->IsExternalArray()) {
- const char* tag = objects_tags_.GetTag(object);
- return AddEntry(object, HeapEntry::kArray, tag != NULL ? tag : "");
+ return AddEntry(object, HeapEntry::kArray, "");
} else if (object->IsHeapNumber()) {
return AddEntry(object, HeapEntry::kHeapNumber, "number");
}
@@ -2635,7 +2634,10 @@ const char*
V8HeapExplorer::GetStrongGcSubrootName(Object* object) {
void V8HeapExplorer::TagObject(Object* obj, const char* tag) {
if (IsEssentialObject(obj)) {
- objects_tags_.SetTag(obj, tag);
+ HeapEntry* entry = GetEntry(obj);
+ if (entry->name()[0] == '\0') {
+ entry->set_name(tag);
+ }
}
}
Index: src/profile-generator.h
diff --git a/src/profile-generator.h b/src/profile-generator.h
index
bc1fb42d8845c31453f5e74f7a23166ca871e933..92896c29e997a8e1dd22c06b2cbaf505a5df608e
100644
--- a/src/profile-generator.h
+++ b/src/profile-generator.h
@@ -526,6 +526,7 @@ class HeapEntry BASE_EMBEDDED {
HeapSnapshot* snapshot() { return snapshot_; }
Type type() { return static_cast<Type>(type_); }
const char* name() { return name_; }
+ void set_name(const char* name) { name_ = name; }
inline SnapshotObjectId id() { return id_; }
int self_size() { return self_size_; }
int retained_size() { return retained_size_; }
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev