Title: [158723] trunk/Source/WebCore
Revision
158723
Author
[email protected]
Date
2013-11-05 22:14:47 -0800 (Tue, 05 Nov 2013)

Log Message

Change the order of conditions to avoid computing rendererIsEditable()
https://bugs.webkit.org/show_bug.cgi?id=123868

Reviewed by Andreas Kling.

Merge https://chromium.googlesource.com/chromium/blink/+/c89b413ff0fc4aafa0c71d180b0b1e131bb37707

When we need both Node::renderer() and Node::rendererIsEditable() conditions to be true to perform
some operation, it is more effective to check for renderer() first, so that if this condition fails
we can avoid unnecessary computation of rendererIsEditable().

* dom/Position.cpp:
(WebCore::nextRenderedEditable):
(WebCore::previousRenderedEditable):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseReleaseEvent):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (158722 => 158723)


--- trunk/Source/WebCore/ChangeLog	2013-11-06 06:02:35 UTC (rev 158722)
+++ trunk/Source/WebCore/ChangeLog	2013-11-06 06:14:47 UTC (rev 158723)
@@ -1,5 +1,24 @@
 2013-11-05  Ryosuke Niwa  <[email protected]>
 
+        Change the order of conditions to avoid computing rendererIsEditable()
+        https://bugs.webkit.org/show_bug.cgi?id=123868
+
+        Reviewed by Andreas Kling.
+
+        Merge https://chromium.googlesource.com/chromium/blink/+/c89b413ff0fc4aafa0c71d180b0b1e131bb37707
+
+        When we need both Node::renderer() and Node::rendererIsEditable() conditions to be true to perform
+        some operation, it is more effective to check for renderer() first, so that if this condition fails
+        we can avoid unnecessary computation of rendererIsEditable().
+
+        * dom/Position.cpp:
+        (WebCore::nextRenderedEditable):
+        (WebCore::previousRenderedEditable):
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::handleMouseReleaseEvent):
+
+2013-11-05  Ryosuke Niwa  <[email protected]>
+
         simpleUserAgentStyleSheet doesn't have focus ring on anchor element
         https://bugs.webkit.org/show_bug.cgi?id=123867
 

Modified: trunk/Source/WebCore/dom/Position.cpp (158722 => 158723)


--- trunk/Source/WebCore/dom/Position.cpp	2013-11-06 06:02:35 UTC (rev 158722)
+++ trunk/Source/WebCore/dom/Position.cpp	2013-11-06 06:14:47 UTC (rev 158723)
@@ -65,10 +65,8 @@
 static Node* nextRenderedEditable(Node* node)
 {
     while ((node = nextLeafNode(node))) {
-        if (!node->rendererIsEditable())
-            continue;
         RenderObject* renderer = node->renderer();
-        if (!renderer)
+        if (!renderer || !node->rendererIsEditable())
             continue;
         if (hasInlineBoxWrapper(*renderer))
             return node;
@@ -79,10 +77,8 @@
 static Node* previousRenderedEditable(Node* node)
 {
     while ((node = previousLeafNode(node))) {
-        if (!node->rendererIsEditable())
-            continue;
         RenderObject* renderer = node->renderer();
-        if (!renderer)
+        if (!renderer || !node->rendererIsEditable())
             continue;
         if (hasInlineBoxWrapper(*renderer))
             return node;

Modified: trunk/Source/WebCore/page/EventHandler.cpp (158722 => 158723)


--- trunk/Source/WebCore/page/EventHandler.cpp	2013-11-06 06:02:35 UTC (rev 158722)
+++ trunk/Source/WebCore/page/EventHandler.cpp	2013-11-06 06:14:47 UTC (rev 158723)
@@ -937,7 +937,7 @@
         VisibleSelection newSelection;
         Node* node = event.targetNode();
         bool caretBrowsing = m_frame.settings().caretBrowsingEnabled();
-        if (node && (caretBrowsing || node->rendererIsEditable()) && node->renderer()) {
+        if (node && node->renderer() && (caretBrowsing || node->rendererIsEditable())) {
             VisiblePosition pos = node->renderer()->positionForPoint(event.localPoint());
             newSelection = VisibleSelection(pos);
         }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to