Title: [249236] trunk/Source/WebCore
Revision
249236
Author
simon.fra...@apple.com
Date
2019-08-28 20:01:39 -0700 (Wed, 28 Aug 2019)

Log Message

Make FillLayer::hasImage() inline
https://bugs.webkit.org/show_bug.cgi?id=201265

Reviewed by Zalan Bujtas.

FillLayer::hasImage() shows up on profiles because it's called from hot functions like
isTransparent() and hasMask(), so make a basic inline version that doens't have
to walk the list.

* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::hasImageInAnyLayer const):
(WebCore::FillLayer::hasImage const): Deleted.
* rendering/style/FillLayer.h:
(WebCore::FillLayer::hasImage const):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (249235 => 249236)


--- trunk/Source/WebCore/ChangeLog	2019-08-29 02:57:20 UTC (rev 249235)
+++ trunk/Source/WebCore/ChangeLog	2019-08-29 03:01:39 UTC (rev 249236)
@@ -1,3 +1,20 @@
+2019-08-28  Simon Fraser  <simon.fra...@apple.com>
+
+        Make FillLayer::hasImage() inline
+        https://bugs.webkit.org/show_bug.cgi?id=201265
+
+        Reviewed by Zalan Bujtas.
+
+        FillLayer::hasImage() shows up on profiles because it's called from hot functions like
+        isTransparent() and hasMask(), so make a basic inline version that doens't have
+        to walk the list.
+
+        * rendering/style/FillLayer.cpp:
+        (WebCore::FillLayer::hasImageInAnyLayer const):
+        (WebCore::FillLayer::hasImage const): Deleted.
+        * rendering/style/FillLayer.h:
+        (WebCore::FillLayer::hasImage const):
+
 2019-08-28  Peng Liu  <peng.l...@apple.com>
 
         REGRESSION: String check: “realtime” Suggesting “real time”

Modified: trunk/Source/WebCore/rendering/style/FillLayer.cpp (249235 => 249236)


--- trunk/Source/WebCore/rendering/style/FillLayer.cpp	2019-08-29 02:57:20 UTC (rev 249235)
+++ trunk/Source/WebCore/rendering/style/FillLayer.cpp	2019-08-29 03:01:39 UTC (rev 249236)
@@ -365,7 +365,7 @@
     return repeatX() == FillRepeat::Repeat && repeatY() == FillRepeat::Repeat;
 }
 
-bool FillLayer::hasImage() const
+bool FillLayer::hasImageInAnyLayer() const
 {
     for (auto* layer = this; layer; layer = layer->m_next.get()) {
         if (layer->image())

Modified: trunk/Source/WebCore/rendering/style/FillLayer.h (249235 => 249236)


--- trunk/Source/WebCore/rendering/style/FillLayer.h	2019-08-29 02:57:20 UTC (rev 249235)
+++ trunk/Source/WebCore/rendering/style/FillLayer.h	2019-08-29 03:01:39 UTC (rev 249236)
@@ -145,7 +145,7 @@
 
     bool containsImage(StyleImage&) const;
     bool imagesAreLoaded() const;
-    bool hasImage() const;
+    bool hasImage() const { return m_next ? hasImageInAnyLayer() : m_image; }
     bool hasFixedImage() const;
     bool hasOpaqueImage(const RenderElement&) const;
     bool hasRepeatXY() const;
@@ -176,6 +176,8 @@
 
     void computeClipMax() const;
 
+    bool hasImageInAnyLayer() const;
+
     std::unique_ptr<FillLayer> m_next;
 
     RefPtr<StyleImage> m_image;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to