diff options
Diffstat (limited to 'src/image/SkImage.cpp')
-rw-r--r-- | src/image/SkImage.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index 2a83eaf0ed..99b0be161b 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -8,6 +8,7 @@ #include "SkBitmap.h" #include "SkBitmapCache.h" #include "SkCanvas.h" +#include "SkColorSpace_Base.h" #include "SkCrossContextImageData.h" #include "SkData.h" #include "SkImageEncoder.h" @@ -318,7 +319,9 @@ sk_sp<SkImage> SkImage_Base::makeColorSpace(sk_sp<SkColorSpace> target) const { return nullptr; } - if (!this->colorSpace() || SkColorSpace::Equals(this->colorSpace(), target.get())) { + // Be sure to treat nullptr srcs as "equal to" sRGB. + if ((!this->colorSpace() && target->isSRGB()) || + SkColorSpace_Base::EqualsIgnoreFlags(this->colorSpace(), target.get())) { return sk_ref_sp(const_cast<SkImage_Base*>(this)); } |