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();