Changeset 158723 in webkit


Ignore:
Timestamp:
Nov 5, 2013 10:14:47 PM (10 years ago)
Author:
rniwa@webkit.org
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):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r158722 r158723  
     12013-11-05  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        Change the order of conditions to avoid computing rendererIsEditable()
     4        https://bugs.webkit.org/show_bug.cgi?id=123868
     5
     6        Reviewed by Andreas Kling.
     7
     8        Merge https://chromium.googlesource.com/chromium/blink/+/c89b413ff0fc4aafa0c71d180b0b1e131bb37707
     9
     10        When we need both Node::renderer() and Node::rendererIsEditable() conditions to be true to perform
     11        some operation, it is more effective to check for renderer() first, so that if this condition fails
     12        we can avoid unnecessary computation of rendererIsEditable().
     13
     14        * dom/Position.cpp:
     15        (WebCore::nextRenderedEditable):
     16        (WebCore::previousRenderedEditable):
     17        * page/EventHandler.cpp:
     18        (WebCore::EventHandler::handleMouseReleaseEvent):
     19
    1202013-11-05  Ryosuke Niwa  <rniwa@webkit.org>
    221
  • trunk/Source/WebCore/dom/Position.cpp

    r158617 r158723  
    6666{
    6767    while ((node = nextLeafNode(node))) {
    68         if (!node->rendererIsEditable())
    69             continue;
    7068        RenderObject* renderer = node->renderer();
    71         if (!renderer)
     69        if (!renderer || !node->rendererIsEditable())
    7270            continue;
    7371        if (hasInlineBoxWrapper(*renderer))
     
    8078{
    8179    while ((node = previousLeafNode(node))) {
    82         if (!node->rendererIsEditable())
    83             continue;
    8480        RenderObject* renderer = node->renderer();
    85         if (!renderer)
     81        if (!renderer || !node->rendererIsEditable())
    8682            continue;
    8783        if (hasInlineBoxWrapper(*renderer))
  • trunk/Source/WebCore/page/EventHandler.cpp

    r158163 r158723  
    938938        Node* node = event.targetNode();
    939939        bool caretBrowsing = m_frame.settings().caretBrowsingEnabled();
    940         if (node && (caretBrowsing || node->rendererIsEditable()) && node->renderer()) {
     940        if (node && node->renderer() && (caretBrowsing || node->rendererIsEditable())) {
    941941            VisiblePosition pos = node->renderer()->positionForPoint(event.localPoint());
    942942            newSelection = VisibleSelection(pos);
Note: See TracChangeset for help on using the changeset viewer.