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