Bug 1323837 - Draw nothing if there are no color stops for gradient effect, r?bas draft
authorpeter chang <pchang@mozilla.com>
Fri, 16 Dec 2016 13:55:22 +0800
changeset 451236 f28c9da7204c77f9b14ca025f1977e7caa0b7210
parent 448717 f46f85dcfbc2b3098ea758825d18be6fab33cbc6
child 458813 eaa510b4a1d0e9708c30a26036df3d6f4d94a809
push id39109
push userbmo:howareyou322@gmail.com
push dateTue, 20 Dec 2016 02:37:49 +0000
reviewersbas
bugs1323837
milestone53.0a1
Bug 1323837 - Draw nothing if there are no color stops for gradient effect, r?bas MozReview-Commit-ID: BnZlh2NhdHX
gfx/2d/DrawTargetD2D1.cpp
--- a/gfx/2d/DrawTargetD2D1.cpp
+++ b/gfx/2d/DrawTargetD2D1.cpp
@@ -1375,16 +1375,21 @@ DrawTargetD2D1::FinalizeDrawing(Composit
   }
 
   const RadialGradientPattern *pat = static_cast<const RadialGradientPattern*>(&aPattern);
   if (pat->mCenter1 == pat->mCenter2 && pat->mRadius1 == pat->mRadius2) {
     // Draw nothing!
     return;
   }
 
+  if (!pat->mStops) {
+    // Draw nothing because of no color stops
+    return;
+  }
+
   RefPtr<ID2D1Effect> radialGradientEffect;
 
   HRESULT hr = mDC->CreateEffect(CLSID_RadialGradientEffect, getter_AddRefs(radialGradientEffect));
   if (FAILED(hr) || !radialGradientEffect) {
     gfxWarning() << "Failed to create radial gradient effect. Code: " << hexa(hr);
     return;
   }