Title: [87885] trunk/Source/WebCore
Revision
87885
Author
[email protected]
Date
2011-06-02 02:14:26 -0700 (Thu, 02 Jun 2011)

Log Message

2011-06-02  MORITA Hajime  <[email protected]>

        Reviewed by Kent Tamura.

        [Refactoring] Node::nextRenderer() and previousRenderer() should be part of NodeRenderingContext
        https://bugs.webkit.org/show_bug.cgi?id=61912

        Inlined Node::nextRenderer() and previousRenderer() into NodeRenderingContext and
        removed original definitions.

        No test, no behavioral change.

        * dom/Node.cpp:
        * dom/Node.h:
        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::nextRenderer):
        (WebCore::NodeRenderingContext::previousRenderer):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (87884 => 87885)


--- trunk/Source/WebCore/ChangeLog	2011-06-02 08:48:01 UTC (rev 87884)
+++ trunk/Source/WebCore/ChangeLog	2011-06-02 09:14:26 UTC (rev 87885)
@@ -1,3 +1,21 @@
+2011-06-02  MORITA Hajime  <[email protected]>
+
+        Reviewed by Kent Tamura.
+
+        [Refactoring] Node::nextRenderer() and previousRenderer() should be part of NodeRenderingContext
+        https://bugs.webkit.org/show_bug.cgi?id=61912
+
+        Inlined Node::nextRenderer() and previousRenderer() into NodeRenderingContext and
+        removed original definitions.
+
+        No test, no behavioral change.
+        
+        * dom/Node.cpp:
+        * dom/Node.h:
+        * dom/NodeRenderingContext.cpp:
+        (WebCore::NodeRenderingContext::nextRenderer):
+        (WebCore::NodeRenderingContext::previousRenderer):
+
 2011-06-02  Piroska AndrĂ¡s  <[email protected]>
 
         Rubber-stamped by Gabor Loki.

Modified: trunk/Source/WebCore/dom/Node.cpp (87884 => 87885)


--- trunk/Source/WebCore/dom/Node.cpp	2011-06-02 08:48:01 UTC (rev 87884)
+++ trunk/Source/WebCore/dom/Node.cpp	2011-06-02 09:14:26 UTC (rev 87885)
@@ -1381,31 +1381,6 @@
     clearFlag(InDetachFlag);
 }
 
-RenderObject* Node::previousRenderer()
-{
-    // FIXME: We should have the same O(N^2) avoidance as nextRenderer does
-    // however, when I tried adding it, several tests failed.
-    for (Node* n = previousSibling(); n; n = n->previousSibling()) {
-        if (n->renderer())
-            return n->renderer();
-    }
-    return 0;
-}
-
-RenderObject* Node::nextRenderer()
-{
-    // Avoid an O(n^2) problem with this function by not checking for
-    // nextRenderer() when the parent element hasn't attached yet.
-    if (parentOrHostNode() && !parentOrHostNode()->attached())
-        return 0;
-
-    for (Node* n = nextSibling(); n; n = n->nextSibling()) {
-        if (n->renderer())
-            return n->renderer();
-    }
-    return 0;
-}
-
 // FIXME: This code is used by editing.  Seems like it could move over there and not pollute Node.
 Node *Node::previousNodeConsideringAtomicNodes() const
 {

Modified: trunk/Source/WebCore/dom/Node.h (87884 => 87885)


--- trunk/Source/WebCore/dom/Node.h	2011-06-02 08:48:01 UTC (rev 87884)
+++ trunk/Source/WebCore/dom/Node.h	2011-06-02 09:14:26 UTC (rev 87885)
@@ -434,8 +434,6 @@
     // Integration with rendering tree
 
     RenderObject* renderer() const { return m_renderer; }
-    RenderObject* nextRenderer();
-    RenderObject* previousRenderer();
     void setRenderer(RenderObject* renderer) { m_renderer = renderer; }
     
     // Use these two methods with caution.

Modified: trunk/Source/WebCore/dom/NodeRenderingContext.cpp (87884 => 87885)


--- trunk/Source/WebCore/dom/NodeRenderingContext.cpp	2011-06-02 08:48:01 UTC (rev 87884)
+++ trunk/Source/WebCore/dom/NodeRenderingContext.cpp	2011-06-02 09:14:26 UTC (rev 87885)
@@ -99,37 +99,52 @@
 
 RenderObject* NodeRenderingContext::nextRenderer() const
 {
-    if (RenderObject* renderer = m_node->renderer()) {
-        ASSERT(m_location == LocationUndetermined);
+    ASSERT(m_node->renderer() || m_location != LocationUndetermined);
+    if (RenderObject* renderer = m_node->renderer())
         return renderer->nextSibling();
+
+    if (m_phase == AttachContentForwarded) {
+        // Returns 0 here to insert renderer at the end of child list.
+        // We assume content children are always attached in tree order and
+        // there is no partial render tree creation.
+        return 0;
     }
 
-    ASSERT(m_location != LocationUndetermined);
+    // Avoid an O(n^2) problem with this function by not checking for
+    // nextRenderer() when the parent element hasn't attached yet.
+    if (m_node->parentOrHostNode() && !m_node->parentOrHostNode()->attached())
+        return 0;
 
-    if (m_phase != AttachContentForwarded)
-        return m_node->nextRenderer();
-    // Returns 0 here to insert renderer at the end of child list.
-    // We assume content children are always attached in tree order and
-    // there is no partial render tree creation.
+    for (Node* node = m_node->nextSibling(); node; node = node->nextSibling()) {
+        if (node->renderer())
+            return node->renderer();
+    }
+
     return 0;
 }
 
 RenderObject* NodeRenderingContext::previousRenderer() const
 {
-    if (RenderObject* renderer = m_node->renderer()) {
-        ASSERT(m_location == LocationUndetermined);
+    ASSERT(m_node->renderer() || m_location != LocationUndetermined);
+    if (RenderObject* renderer = m_node->renderer())
         return renderer->previousSibling();
+
+    if (m_phase == AttachContentForwarded) {
+        // Returns lastChild() here to insert renderer at the end of child list.
+        // We assume content children are always attached in tree order and
+        // there is no partial render tree creation.
+        if (RenderObject* parent = parentRenderer())
+            return parent->lastChild();
+        return 0;
     }
 
-    ASSERT(m_location != LocationUndetermined);
+    // FIXME: We should have the same O(N^2) avoidance as nextRenderer does
+    // however, when I tried adding it, several tests failed.
+    for (Node* node = m_node->previousSibling(); node; node = node->previousSibling()) {
+        if (node->renderer())
+            return node->renderer();
+    }
 
-    if (m_phase != AttachContentForwarded)
-        return m_node->previousRenderer();
-    // Returns lastChild() here to insert renderer at the end of child list.
-    // We assume content children are always attached in tree order and
-    // there is no partial render tree creation.
-    if (RenderObject* parent = parentRenderer())
-        return parent->lastChild();
     return 0;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to