[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
krit at webkit.org
krit at webkit.org
Wed Dec 22 14:17:58 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 267750d95fc3720ddc42ae6488f44292b5d73de1
Author: krit at webkit.org <krit at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Oct 6 15:16:46 2010 +0000
2010-10-06 Dirk Schulze <krit at webkit.org>
Reviewed by Nikolas Zimmermann.
SVG feMorphology - big radii cause huge ImageBuffer sizes
https://bugs.webkit.org/show_bug.cgi?id=47263
The current code in FEMorphology::determineAbsolutePaintRect calculates the smallest paint rect by inflate the paint rect
of a previous effect with the radius. This was meant as an optimization, but I forgot to clip the calculated image size
by the maximal effect size. This caused huge image sizes for big radii.
This is covered by svg/filters/feMorphology-invalid-radius.svg and fixes the crashes on Windows and Snow Leopard bots.
* platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::determineAbsolutePaintRect):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69194 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 85c03b1..ecd734b 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-10-06 Dirk Schulze <krit at webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ SVG feMorphology - big radii cause huge ImageBuffer sizes
+ https://bugs.webkit.org/show_bug.cgi?id=47263
+
+ The current code in FEMorphology::determineAbsolutePaintRect calculates the smallest paint rect by inflate the paint rect
+ of a previous effect with the radius. This was meant as an optimization, but I forgot to clip the calculated image size
+ by the maximal effect size. This caused huge image sizes for big radii.
+
+ This is covered by svg/filters/feMorphology-invalid-radius.svg and fixes the crashes on Windows and Snow Leopard bots.
+
+ * platform/graphics/filters/FEMorphology.cpp:
+ (WebCore::FEMorphology::determineAbsolutePaintRect):
+
2010-10-06 Alejandro G. Castro <alex at igalia.com>
Reviewed by Dirk Schulze.
diff --git a/WebCore/platform/graphics/filters/FEMorphology.cpp b/WebCore/platform/graphics/filters/FEMorphology.cpp
index ab6a11f..ac26441 100644
--- a/WebCore/platform/graphics/filters/FEMorphology.cpp
+++ b/WebCore/platform/graphics/filters/FEMorphology.cpp
@@ -80,6 +80,7 @@ void FEMorphology::determineAbsolutePaintRect(Filter* filter)
FloatRect paintRect = inputEffect(0)->absolutePaintRect();
paintRect.inflateX(filter->applyHorizontalScale(m_radiusX));
paintRect.inflateY(filter->applyVerticalScale(m_radiusY));
+ paintRect.intersect(maxEffectRect());
setAbsolutePaintRect(enclosingIntRect(paintRect));
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list