Title: [102268] trunk/Source/WebCore
Revision
102268
Author
kl...@webkit.org
Date
2011-12-07 13:10:02 -0800 (Wed, 07 Dec 2011)

Log Message

RenderObject::style(): Inline early-return condition.
<http://webkit.org/b/74019>

Reviewed by Anders Carlsson.

style() was very hot (6.1%) when scrolling around on youtube.com,
and 100% of the calls were taking the early return path.

Inlined the !isRenderFlowThread() check and renamed the function to
styleSlowCase().

* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleSlowCase):
* rendering/RenderObject.h:
(WebCore::RenderObject::style):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (102267 => 102268)


--- trunk/Source/WebCore/ChangeLog	2011-12-07 21:01:59 UTC (rev 102267)
+++ trunk/Source/WebCore/ChangeLog	2011-12-07 21:10:02 UTC (rev 102268)
@@ -1,3 +1,21 @@
+2011-12-07  Andreas Kling  <kl...@webkit.org>
+
+        RenderObject::style(): Inline early-return condition.
+        <http://webkit.org/b/74019>
+
+        Reviewed by Anders Carlsson.
+
+        style() was very hot (6.1%) when scrolling around on youtube.com,
+        and 100% of the calls were taking the early return path.
+
+        Inlined the !isRenderFlowThread() check and renamed the function to
+        styleSlowCase().
+
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::styleSlowCase):
+        * rendering/RenderObject.h:
+        (WebCore::RenderObject::style):
+
 2011-12-07  Adam Klein  <ad...@chromium.org>
 
         Use HashMap<Node*, OwnPtr<...>> in ChildListMutationScope

Modified: trunk/Source/WebCore/WebCore.exp.in (102267 => 102268)


--- trunk/Source/WebCore/WebCore.exp.in	2011-12-07 21:01:59 UTC (rev 102267)
+++ trunk/Source/WebCore/WebCore.exp.in	2011-12-07 21:10:02 UTC (rev 102268)
@@ -1179,7 +1179,7 @@
 __ZNK7WebCore12RenderObject14enclosingLayerEv
 __ZNK7WebCore12RenderObject15localToAbsoluteERKNS_10FloatPointEbb
 __ZNK7WebCore12RenderObject7childAtEj
-__ZNK7WebCore12RenderObject5styleEv
+__ZNK7WebCore12RenderObject13styleSlowCaseEv
 __ZNK7WebCore12RenderWidget14windowClipRectEv
 __ZNK7WebCore12SharedBuffer11getSomeDataERPKcj
 __ZNK7WebCore12SharedBuffer4dataEv

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (102267 => 102268)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2011-12-07 21:01:59 UTC (rev 102267)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2011-12-07 21:10:02 UTC (rev 102268)
@@ -1723,10 +1723,11 @@
     return diff;
 }
 
-RenderStyle* RenderObject::style() const
+RenderStyle* RenderObject::styleSlowCase() const
 {
-    if (!inRenderFlowThread()
-        || !canHaveRegionStyle()
+    ASSERT(inRenderFlowThread());
+
+    if (!canHaveRegionStyle()
         || !((view() && view()->currentRenderRegion() && view()->currentRenderRegion()->hasCustomRegionStyle())))
         return m_style.get();
 

Modified: trunk/Source/WebCore/rendering/RenderObject.h (102267 => 102268)


--- trunk/Source/WebCore/rendering/RenderObject.h	2011-12-07 21:01:59 UTC (rev 102267)
+++ trunk/Source/WebCore/rendering/RenderObject.h	2011-12-07 21:10:02 UTC (rev 102268)
@@ -866,6 +866,7 @@
     virtual LayoutRect outlineBoundsForRepaint(RenderBoxModelObject* /*repaintContainer*/, LayoutPoint* /*cachedOffsetToRepaintContainer*/ = 0) const { return LayoutRect(); }
 
 private:
+    RenderStyle* styleSlowCase() const;
     RenderStyle* firstLineStyleSlowCase() const;
     StyleDifference adjustStyleDifference(StyleDifference, unsigned contextSensitiveProperties) const;
 
@@ -1032,6 +1033,13 @@
     return style()->preserveNewline();
 }
 
+inline RenderStyle* RenderObject::style() const
+{
+    if (!inRenderFlowThread())
+        return m_style.get();
+    return styleSlowCase();
+}
+
 inline void makeMatrixRenderable(TransformationMatrix& matrix, bool has3DRendering)
 {
 #if !ENABLE(3D_RENDERING)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to