aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar junov@google.com <junov@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-02-01 16:41:47 +0000
committerGravatar junov@google.com <junov@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-02-01 16:41:47 +0000
commit8b2f41b606d961992c19382bd01ac832f9859480 (patch)
tree42975ed4d1d45d7a59a4ce43d55390630d4e6e34
parentd9b0f480be398cb37c447605109c419e8314cf61 (diff)
Prevent SkPictureUtils::GatherPixelRefs from generating bitmaps from gradient
-rw-r--r--src/utils/SkPictureUtils.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/utils/SkPictureUtils.cpp b/src/utils/SkPictureUtils.cpp
index 4ddc566dac..d8041df3ba 100644
--- a/src/utils/SkPictureUtils.cpp
+++ b/src/utils/SkPictureUtils.cpp
@@ -58,7 +58,11 @@ private:
SkShader* shader = paint.getShader();
if (shader) {
SkBitmap bm;
- if (shader->asABitmap(&bm, NULL, NULL)) {
+ // Check whether the shader is a gradient in order to short-circuit
+ // call to asABitmap to prevent generation of bitmaps from
+ // gradient shaders, which implement asABitmap.
+ if (SkShader::kNone_GradientType == shader->asAGradient(NULL) &&
+ shader->asABitmap(&bm, NULL, NULL)) {
fPRSet->add(bm.pixelRef());
}
}