aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders/SkPictureShader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shaders/SkPictureShader.cpp')
-rw-r--r--src/shaders/SkPictureShader.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/shaders/SkPictureShader.cpp b/src/shaders/SkPictureShader.cpp
index 82439aeb62..415d3e5713 100644
--- a/src/shaders/SkPictureShader.cpp
+++ b/src/shaders/SkPictureShader.cpp
@@ -296,8 +296,13 @@ const {
}
sk_sp<SkShader> SkPictureShader::onMakeColorSpace(SkColorSpaceXformer* xformer) const {
+ sk_sp<SkColorSpace> dstCS = xformer->dst();
+ if (SkColorSpace::Equals(dstCS.get(), fColorSpace.get())) {
+ return sk_ref_sp(const_cast<SkPictureShader*>(this));
+ }
+
return sk_sp<SkPictureShader>(new SkPictureShader(fPicture, fTmx, fTmy, &this->getLocalMatrix(),
- &fTile, xformer->dst()));
+ &fTile, std::move(dstCS)));
}
/////////////////////////////////////////////////////////////////////////////////////////