michael@0: diff --git a/gfx/skia/src/effects/SkGradientShader.cpp b/gfx/skia/src/effects/SkGradientShader.cpp michael@0: --- a/gfx/skia/src/effects/SkGradientShader.cpp michael@0: +++ b/gfx/skia/src/effects/SkGradientShader.cpp michael@0: @@ -1665,17 +1665,20 @@ public: michael@0: } michael@0: return kRadial2_GradientType; michael@0: } michael@0: michael@0: virtual void shadeSpan(int x, int y, SkPMColor* SK_RESTRICT dstC, int count) SK_OVERRIDE { michael@0: SkASSERT(count > 0); michael@0: michael@0: // Zero difference between radii: fill with transparent black. michael@0: - if (fDiffRadius == 0) { michael@0: + // TODO: Is removing this actually correct? Two circles with the michael@0: + // same radius, but different centers doesn't sound like it michael@0: + // should be cleared michael@0: + if (fDiffRadius == 0 && fCenter1 == fCenter2) { michael@0: sk_bzero(dstC, count * sizeof(*dstC)); michael@0: return; michael@0: } michael@0: SkMatrix::MapXYProc dstProc = fDstToIndexProc; michael@0: TileProc proc = fTileProc; michael@0: const SkPMColor* SK_RESTRICT cache = this->getCache32(); michael@0: michael@0: SkScalar foura = fA * 4;