[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.18-1-697-g2f78b87
oliver at apple.com
oliver at apple.com
Wed Jan 20 22:26:15 UTC 2010
The following commit has been merged in the debian/unstable branch:
commit 7d5dd03b73b1f3dfdd66d93d163fc9339f8bd4f8
Author: oliver at apple.com <oliver at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sat Jan 16 00:16:23 2010 +0000
2010-01-15 Oliver Hunt <oliver at apple.com>
Reviewed by Sam Weinig.
Bad DOM performance in large SVG files
https://bugs.webkit.org/show_bug.cgi?id=30055
Improve the performance of the early culling check by avoiding save/restore
of graphics state in culled case.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53349 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 5bb792c..514120f 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2010-01-15 Oliver Hunt <oliver at apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bad DOM performance in large SVG files
+ https://bugs.webkit.org/show_bug.cgi?id=30055
+
+ Improve the performance of the early culling check by avoiding save/restore
+ of graphics state in culled case.
+
+ * rendering/RenderPath.cpp:
+ (WebCore::RenderPath::paint):
+
2010-01-15 Eric Seidel <eric at webkit.org>
No review, rolling out r53344.
diff --git a/WebCore/rendering/RenderPath.cpp b/WebCore/rendering/RenderPath.cpp
index 81cddfa..1d42d7e 100644
--- a/WebCore/rendering/RenderPath.cpp
+++ b/WebCore/rendering/RenderPath.cpp
@@ -216,18 +216,17 @@ void RenderPath::paint(PaintInfo& paintInfo, int, int)
if (paintInfo.context->paintingDisabled() || style()->visibility() == HIDDEN || m_path.isEmpty())
return;
- PaintInfo childPaintInfo(paintInfo);
- childPaintInfo.context->save();
- applyTransformToPaintInfo(childPaintInfo, m_localTransform);
FloatRect boundingBox = repaintRectInLocalCoordinates();
+ FloatRect nonLocalBoundingBox = m_localTransform.mapRect(boundingBox);
// FIXME: The empty rect check is to deal with incorrect initial clip in renderSubtreeToImage
// unfortunately fixing that problem is fairly complex unless we were willing to just futz the
// rect to something "close enough"
- if (!boundingBox.intersects(childPaintInfo.rect) && !childPaintInfo.rect.isEmpty()) {
- childPaintInfo.context->restore();
+ if (!nonLocalBoundingBox.intersects(paintInfo.rect) && !paintInfo.rect.isEmpty())
return;
- }
+ PaintInfo childPaintInfo(paintInfo);
+ childPaintInfo.context->save();
+ applyTransformToPaintInfo(childPaintInfo, m_localTransform);
SVGResourceFilter* filter = 0;
if (childPaintInfo.phase == PaintPhaseForeground) {
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list