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

Unified Diff: Source/core/editing/markup.cpp

Issue 171953002: Get rid of inefficient uses of childNodeCount() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Use lastChild() Created 6 years, 10 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 | « Source/core/editing/htmlediting.cpp ('k') | Source/core/html/track/vtt/VTTRegion.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/editing/markup.cpp
diff --git a/Source/core/editing/markup.cpp b/Source/core/editing/markup.cpp
index ce7484641725632a31205dbabf8cb6e86c49a584..608698f458be04a608ec0366420844174105f6aa 100644
--- a/Source/core/editing/markup.cpp
+++ b/Source/core/editing/markup.cpp
@@ -369,7 +369,7 @@ Node* StyledMarkupAccumulator::traverseNodesForSerialization(Node* startNode, No
appendStartTag(*n);
// If node has no children, close the tag now.
- if (!n->childNodeCount()) {
+ if (!n->hasChildNodes()) {
if (shouldEmit)
appendEndTag(*n);
lastClosed = n;
@@ -782,15 +782,19 @@ static void fillContainerFromString(ContainerNode* paragraph, const String& stri
}
}
-bool isPlainTextMarkup(Node *node)
+bool isPlainTextMarkup(Node* node)
{
- if (!node->isElementNode() || !node->hasTagName(divTag) || toElement(node)->hasAttributes())
+ if (!node->isElementNode())
return false;
- if (node->childNodeCount() == 1 && (node->firstChild()->isTextNode() || (node->firstChild()->firstChild())))
+ Element* element = toElement(node);
+ if (!element->hasTagName(divTag) || !element->hasAttributes())
+ return false;
+
+ if (element->hasOneChild() && (element->firstChild()->isTextNode() || (element->firstChild()->firstChild())))
return true;
- return (node->childNodeCount() == 2 && isTabSpanTextNode(node->firstChild()->firstChild()) && node->firstChild()->nextSibling()->isTextNode());
+ return element->hasChildCount(2) && isTabSpanTextNode(element->firstChild()->firstChild()) && element->lastChild()->isTextNode();
}
static bool shouldPreserveNewline(const Range& range)
« no previous file with comments | « Source/core/editing/htmlediting.cpp ('k') | Source/core/html/track/vtt/VTTRegion.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698