Index: src/core/SkBitmapProcShader.cpp |
diff --git a/src/core/SkBitmapProcShader.cpp b/src/core/SkBitmapProcShader.cpp |
index 3ad9d5a626afc9fe0bcf45b4d7fe550a1e1147ad..9e3ddab2b083b3cd32ef36548f1e5c91037eb30a 100644 |
--- a/src/core/SkBitmapProcShader.cpp |
+++ b/src/core/SkBitmapProcShader.cpp |
@@ -284,14 +284,10 @@ bool SkBitmapProcShader::onIsABitmap(SkBitmap* texture, SkMatrix* texM, TileMode |
sk_sp<SkFlattenable> SkBitmapProcShader::CreateProc(SkReadBuffer& buffer) { |
SkMatrix lm; |
buffer.readMatrix(&lm); |
- SkBitmap bm; |
- if (!buffer.readBitmap(&bm)) { |
- return nullptr; |
- } |
- bm.setImmutable(); |
+ sk_sp<SkImage> image = buffer.readBitmapAsImage(); |
TileMode mx = (TileMode)buffer.readUInt(); |
TileMode my = (TileMode)buffer.readUInt(); |
- return SkShader::MakeBitmapShader(bm, mx, my, &lm); |
+ return image ? image->makeShader(mx, my, &lm) : nullptr; |
} |
void SkBitmapProcShader::flatten(SkWriteBuffer& buffer) const { |