Title: [275632] trunk/Source/WebCore
Revision
275632
Author
[email protected]
Date
2021-04-07 15:17:52 -0700 (Wed, 07 Apr 2021)

Log Message

Wasted vector capacity in RenderLayer lists
https://bugs.webkit.org/show_bug.cgi?id=224170

Reviewed by Sam Weinig.

Shrink RenderLayer normal flow and z-order lists.

This saves about 800KB on twitter.com.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateNormalFlowList):
(WebCore::RenderLayer::rebuildZOrderLists):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (275631 => 275632)


--- trunk/Source/WebCore/ChangeLog	2021-04-07 22:11:08 UTC (rev 275631)
+++ trunk/Source/WebCore/ChangeLog	2021-04-07 22:17:52 UTC (rev 275632)
@@ -1,3 +1,18 @@
+2021-04-07  Simon Fraser  <[email protected]>
+
+        Wasted vector capacity in RenderLayer lists
+        https://bugs.webkit.org/show_bug.cgi?id=224170
+
+        Reviewed by Sam Weinig.
+
+        Shrink RenderLayer normal flow and z-order lists.
+
+        This saves about 800KB on twitter.com.
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::updateNormalFlowList):
+        (WebCore::RenderLayer::rebuildZOrderLists):
+
 2021-04-07  Zalan Bujtas  <[email protected]>
 
         [LFC][IFC] Remove InlineLines and InlineLineBoxes inline capacity of 10

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (275631 => 275632)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2021-04-07 22:11:08 UTC (rev 275631)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2021-04-07 22:17:52 UTC (rev 275632)
@@ -701,7 +701,10 @@
             m_normalFlowList->append(child);
         }
     }
-    
+
+    if (m_normalFlowList)
+        m_normalFlowList->shrinkToFit();
+
     m_normalFlowListDirty = false;
 }
 
@@ -748,11 +751,15 @@
     };
 
     // Sort the two lists.
-    if (posZOrderList)
+    if (posZOrderList) {
         std::stable_sort(posZOrderList->begin(), posZOrderList->end(), compareZIndex);
+        posZOrderList->shrinkToFit();
+    }
 
-    if (negZOrderList)
+    if (negZOrderList) {
         std::stable_sort(negZOrderList->begin(), negZOrderList->end(), compareZIndex);
+        negZOrderList->shrinkToFit();
+    }
 }
 
 void RenderLayer::collectLayers(bool includeHiddenLayers, std::unique_ptr<Vector<RenderLayer*>>& positiveZOrderList, std::unique_ptr<Vector<RenderLayer*>>& negativeZOrderList, OptionSet<Compositing>& accumulatedDirtyFlags)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to