Title: [102266] trunk/Source/WebCore
Revision
102266
Author
kl...@webkit.org
Date
2011-12-07 12:59:35 -0800 (Wed, 07 Dec 2011)

Log Message

RenderLayer::updateZOrderLists(): Inline early-return condition.
<http://webkit.org/b/74013>

Reviewed by Anders Carlsson.

updateZOrderLists() was hot (1.2%) when scrolling around on youtube.com,
and 85% of the calls were taking the early return path.

Inlined the two checks for the early return and renamed the function
to updateZOrderListsSlowCase(). Also reversed their order to avoid the
virtual call (RenderObject::isRenderView()) if possible.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateZOrderListsSlowCase):
* rendering/RenderLayer.h:
(WebCore::RenderLayer::updateZOrderLists):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (102265 => 102266)


--- trunk/Source/WebCore/ChangeLog	2011-12-07 20:08:00 UTC (rev 102265)
+++ trunk/Source/WebCore/ChangeLog	2011-12-07 20:59:35 UTC (rev 102266)
@@ -1,3 +1,22 @@
+2011-12-07  Andreas Kling  <kl...@webkit.org>
+
+        RenderLayer::updateZOrderLists(): Inline early-return condition.
+        <http://webkit.org/b/74013>
+
+        Reviewed by Anders Carlsson.
+
+        updateZOrderLists() was hot (1.2%) when scrolling around on youtube.com,
+        and 85% of the calls were taking the early return path.
+
+        Inlined the two checks for the early return and renamed the function
+        to updateZOrderListsSlowCase(). Also reversed their order to avoid the
+        virtual call (RenderObject::isRenderView()) if possible.
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::updateZOrderListsSlowCase):
+        * rendering/RenderLayer.h:
+        (WebCore::RenderLayer::updateZOrderLists):
+
 2011-12-07  Sheriff Bot  <webkit.review....@gmail.com>
 
         Unreviewed, rolling out r102244.

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (102265 => 102266)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2011-12-07 20:08:00 UTC (rev 102265)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2011-12-07 20:59:35 UTC (rev 102266)
@@ -4092,11 +4092,8 @@
 #endif
 }
 
-void RenderLayer::updateZOrderLists()
+void RenderLayer::updateZOrderListsSlowCase()
 {
-    if (!isStackingContext() || !m_zOrderListsDirty)
-        return;
-
 #if USE(ACCELERATED_COMPOSITING)
     bool includeHiddenLayers = compositor()->inCompositingMode();
 #else

Modified: trunk/Source/WebCore/rendering/RenderLayer.h (102265 => 102266)


--- trunk/Source/WebCore/rendering/RenderLayer.h	2011-12-07 20:08:00 UTC (rev 102265)
+++ trunk/Source/WebCore/rendering/RenderLayer.h	2011-12-07 20:59:35 UTC (rev 102266)
@@ -544,6 +544,8 @@
     void setContainsDirtyOverlayScrollbars(bool dirtyScrollbars) { m_containsDirtyOverlayScrollbars = dirtyScrollbars; }
 
 private:
+    void updateZOrderListsSlowCase();
+
     void computeRepaintRects(IntPoint* offsetFromRoot = 0);
     void clearRepaintRects();
 
@@ -844,6 +846,13 @@
     Page* m_scrollableAreaPage; // Page on which this is registered as a scrollable area.
 };
 
+inline void RenderLayer::updateZOrderLists()
+{
+    if (!m_zOrderListsDirty || !isStackingContext())
+        return;
+    updateZOrderListsSlowCase();
+}
+
 } // namespace WebCore
 
 #ifndef NDEBUG
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to