Bug 1403057 - Early return if the scale vector is zero. draft
authorcku <cku@mozilla.com>
Mon, 02 Oct 2017 14:38:09 +0800
changeset 673263 ca7e8d7606c65bf27ef999cdf4f7a96445513cfd
parent 673185 7b12f466c922920f492883291301cb24394e14fa
child 734045 367770c6d60119ce126595a1815b97f858550b48
push id82512
push userbmo:cku@mozilla.com
push dateMon, 02 Oct 2017 06:38:28 +0000
bugs1403057
milestone58.0a1
Bug 1403057 - Early return if the scale vector is zero. MozReview-Commit-ID: 69X5mvG2UIj
layout/svg/nsFilterInstance.cpp
--- a/layout/svg/nsFilterInstance.cpp
+++ b/layout/svg/nsFilterInstance.cpp
@@ -66,16 +66,20 @@ nsFilterInstance::PaintFilteredFrame(nsI
                                      const nsRegion *aDirtyArea,
                                      imgDrawingParams& aImgParams)
 {
   auto& filterChain = aFilteredFrame->StyleEffects()->mFilters;
   UniquePtr<UserSpaceMetrics> metrics = UserSpaceMetricsForFrame(aFilteredFrame);
 
   gfxContextMatrixAutoSaveRestore autoSR(aCtx);
   gfxSize scaleFactors = aCtx->CurrentMatrix().ScaleFactors(true);
+  if (scaleFactors.IsEmpty()) {
+    return;
+  }
+
   gfxMatrix scaleMatrix(scaleFactors.width, 0.0f,
                         0.0f, scaleFactors.height,
                         0.0f, 0.0f);
 
   gfxMatrix reverseScaleMatrix = scaleMatrix;
   DebugOnly<bool> invertible = reverseScaleMatrix.Invert();
   MOZ_ASSERT(invertible);
   // Pull scale vector out of aCtx's transform, put all scale factors, which