Title: [144484] trunk/Source/WebCore
Revision
144484
Author
[email protected]
Date
2013-03-01 12:46:20 -0800 (Fri, 01 Mar 2013)

Log Message

REGRESSION(r144318) 1-7% perf. regression on SVG/SvgHitTesting
https://bugs.webkit.org/show_bug.cgi?id=111117

Make sure the allocated vector has a capacity of 1, since that is
far and away the most common case.

Reviewed by Andreas Kling.

* rendering/RenderFlowThread.h:
(WebCore):
* rendering/RenderLayer.h:
(WebCore):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::collectLayerFragments):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderRegion.h:
(WebCore):
(WebCore::RenderRegion::collectLayerFragments):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (144483 => 144484)


--- trunk/Source/WebCore/ChangeLog	2013-03-01 20:43:00 UTC (rev 144483)
+++ trunk/Source/WebCore/ChangeLog	2013-03-01 20:46:20 UTC (rev 144484)
@@ -1,3 +1,24 @@
+2013-02-28  David Hyatt  <[email protected]>
+
+        REGRESSION(r144318) 1-7% perf. regression on SVG/SvgHitTesting
+        https://bugs.webkit.org/show_bug.cgi?id=111117
+
+        Make sure the allocated vector has a capacity of 1, since that is
+        far and away the most common case.
+
+        Reviewed by Andreas Kling.
+
+        * rendering/RenderFlowThread.h:
+        (WebCore):
+        * rendering/RenderLayer.h:
+        (WebCore):
+        * rendering/RenderMultiColumnSet.cpp:
+        (WebCore::RenderMultiColumnSet::collectLayerFragments):
+        * rendering/RenderMultiColumnSet.h:
+        * rendering/RenderRegion.h:
+        (WebCore):
+        (WebCore::RenderRegion::collectLayerFragments):
+
 2013-03-01  Enrica Casucci  <[email protected]>
 
         Crash at WebCore::SharedBuffer::hasPlatformData writing an image to the pasteboard.

Modified: trunk/Source/WebCore/rendering/RenderFlowThread.h (144483 => 144484)


--- trunk/Source/WebCore/rendering/RenderFlowThread.h	2013-03-01 20:43:00 UTC (rev 144483)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.h	2013-03-01 20:46:20 UTC (rev 144484)
@@ -40,7 +40,7 @@
 namespace WebCore {
 
 struct LayerFragment;
-typedef Vector<LayerFragment> LayerFragments;
+typedef Vector<LayerFragment, 1> LayerFragments;
 class RenderFlowThread;
 class RenderStyle;
 class RenderRegion;

Modified: trunk/Source/WebCore/rendering/RenderLayer.h (144483 => 144484)


--- trunk/Source/WebCore/rendering/RenderLayer.h	2013-03-01 20:43:00 UTC (rev 144483)
+++ trunk/Source/WebCore/rendering/RenderLayer.h	2013-03-01 20:46:20 UTC (rev 144484)
@@ -297,7 +297,7 @@
     LayoutRect paginationClip;
 };
 
-typedef Vector<LayerFragment> LayerFragments;
+typedef Vector<LayerFragment, 1> LayerFragments;
 
 class RenderLayer : public ScrollableArea {
 public:

Modified: trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp (144483 => 144484)


--- trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp	2013-03-01 20:43:00 UTC (rev 144483)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp	2013-03-01 20:46:20 UTC (rev 144484)
@@ -344,7 +344,7 @@
     }
 }
 
-void RenderMultiColumnSet::collectLayerFragments(Vector<LayerFragment>& fragments, const LayoutRect& layerBoundingBox, const LayoutRect& dirtyRect)
+void RenderMultiColumnSet::collectLayerFragments(LayerFragments& fragments, const LayoutRect& layerBoundingBox, const LayoutRect& dirtyRect)
 {
     // Put the layer bounds into flow thread-local coordinates by flipping it first.
     LayoutRect layerBoundsInFlowThread(layerBoundingBox);

Modified: trunk/Source/WebCore/rendering/RenderMultiColumnSet.h (144483 => 144484)


--- trunk/Source/WebCore/rendering/RenderMultiColumnSet.h	2013-03-01 20:43:00 UTC (rev 144483)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnSet.h	2013-03-01 20:46:20 UTC (rev 144484)
@@ -110,7 +110,7 @@
     
     virtual void repaintFlowThreadContent(const LayoutRect& repaintRect, bool immediate) const OVERRIDE;
 
-    virtual void collectLayerFragments(Vector<LayerFragment>&, const LayoutRect& layerBoundingBox, const LayoutRect& dirtyRect) OVERRIDE;
+    virtual void collectLayerFragments(LayerFragments&, const LayoutRect& layerBoundingBox, const LayoutRect& dirtyRect) OVERRIDE;
 
     virtual const char* renderName() const;
     

Modified: trunk/Source/WebCore/rendering/RenderRegion.h (144483 => 144484)


--- trunk/Source/WebCore/rendering/RenderRegion.h	2013-03-01 20:43:00 UTC (rev 144483)
+++ trunk/Source/WebCore/rendering/RenderRegion.h	2013-03-01 20:46:20 UTC (rev 144484)
@@ -36,6 +36,7 @@
 namespace WebCore {
 
 struct LayerFragment;
+typedef Vector<LayerFragment, 1> LayerFragments;
 class RenderBox;
 class RenderBoxRegionInfo;
 class RenderFlowThread;
@@ -128,7 +129,7 @@
     
     virtual void repaintFlowThreadContent(const LayoutRect& repaintRect, bool immediate) const;
 
-    virtual void collectLayerFragments(Vector<LayerFragment>&, const LayoutRect&, const LayoutRect&) { }
+    virtual void collectLayerFragments(LayerFragments&, const LayoutRect&, const LayoutRect&) { }
 
 protected:
     void setRegionObjectsRegionStyle();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to