Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(669)

Unified Diff: Source/core/dom/Node.cpp

Issue 310433002: Dust off and fix DUMP_NODE_STATISTICS (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/Node.cpp
diff --git a/Source/core/dom/Node.cpp b/Source/core/dom/Node.cpp
index e9a4172aa4ef341cb4df6eb9872289db5383a129..7cc82fc3343a5ae6f1f0124ee354ac427a9ec989 100644
--- a/Source/core/dom/Node.cpp
+++ b/Source/core/dom/Node.cpp
@@ -117,7 +117,11 @@ void Node::operator delete(void* ptr)
#endif
#if DUMP_NODE_STATISTICS
-static HashSet<Node*> liveNodeSet;
+static HashSet<Node*>& liveNodeSet()
+{
+ DEFINE_STATIC_LOCAL(HashSet<Node*>, s_liveNodeSet, ());
+ return s_liveNodeSet;
+}
#endif
void Node::dumpStatistics()
@@ -139,12 +143,11 @@ void Node::dumpStatistics()
HashMap<String, size_t> perTagCount;
size_t attributes = 0;
- size_t attributesWithAttr = 0;
size_t elementsWithAttributeStorage = 0;
size_t elementsWithRareData = 0;
size_t elementsWithNamedNodeMap = 0;
- for (HashSet<Node*>::iterator it = liveNodeSet.begin(); it != liveNodeSet.end(); ++it) {
+ for (HashSet<Node*>::iterator it = liveNodeSet().begin(); it != liveNodeSet().end(); ++it) {
Node* node = *it;
if (node->hasRareData()) {
@@ -166,14 +169,9 @@ void Node::dumpStatistics()
if (!result.isNewEntry)
result.storedValue->value++;
- if (ElementData* elementData = element->elementData()) {
+ if (const ElementData* elementData = element->elementData()) {
attributes += elementData->length();
++elementsWithAttributeStorage;
- for (unsigned i = 0; i < elementData->length(); ++i) {
- Attribute* attr = elementData->attributeItem(i);
- if (attr->attr())
- ++attributesWithAttr;
- }
}
break;
}
@@ -215,7 +213,7 @@ void Node::dumpStatistics()
}
}
- printf("Number of Nodes: %d\n\n", liveNodeSet.size());
+ printf("Number of Nodes: %d\n\n", liveNodeSet().size());
printf("Number of Nodes with RareData: %zu\n\n", nodesWithRareData);
printf("NodeType distribution:\n");
@@ -236,7 +234,6 @@ void Node::dumpStatistics()
printf("Attributes:\n");
printf(" Number of Attributes (non-Node and Node): %zu [%zu]\n", attributes, sizeof(Attribute));
- printf(" Number of Attributes with an Attr: %zu\n", attributesWithAttr);
printf(" Number of Elements with attribute storage: %zu [%zu]\n", elementsWithAttributeStorage, sizeof(ElementData));
printf(" Number of Elements with RareData: %zu\n", elementsWithRareData);
printf(" Number of Elements with NamedNodeMap: %zu [%zu]\n", elementsWithNamedNodeMap, sizeof(NamedNodeMap));
@@ -252,7 +249,7 @@ void Node::trackForDebugging()
#endif
#if DUMP_NODE_STATISTICS
- liveNodeSet.add(this);
+ liveNodeSet().add(this);
#endif
}
@@ -263,7 +260,7 @@ Node::~Node()
#endif
#if DUMP_NODE_STATISTICS
- liveNodeSet.remove(this);
+ liveNodeSet().remove(this);
#endif
#if !ENABLE(OILPAN)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698