| Index: src/core/SkBlitter_RGB16.cpp
|
| diff --git a/src/core/SkBlitter_RGB16.cpp b/src/core/SkBlitter_RGB16.cpp
|
| index 066ec616de674ac90a0727eb6f7a32f6ea4cabae..7860b7cb6c03c82f27b888071b411eec760b72a4 100644
|
| --- a/src/core/SkBlitter_RGB16.cpp
|
| +++ b/src/core/SkBlitter_RGB16.cpp
|
| @@ -160,7 +160,7 @@ SkRGB16_Black_Blitter::SkRGB16_Black_Blitter(const SkPixmap& device, const SkPai
|
| : INHERITED(device, paint) {
|
| SkASSERT(paint.getShader() == nullptr);
|
| SkASSERT(paint.getColorFilter() == nullptr);
|
| - SkASSERT(paint.getXfermode() == nullptr);
|
| + SkASSERT(paint.isSrcOver());
|
| SkASSERT(paint.getColor() == SK_ColorBLACK);
|
| }
|
|
|
| @@ -683,7 +683,7 @@ SkRGB16_Shader_Blitter::SkRGB16_Shader_Blitter(const SkPixmap& device,
|
| SkShader::Context* shaderContext)
|
| : INHERITED(device, paint, shaderContext)
|
| {
|
| - SkASSERT(paint.getXfermode() == nullptr);
|
| + SkASSERT(paint.isSrcOver());
|
|
|
| fBuffer = (SkPMColor*)sk_malloc_throw(device.width() * sizeof(SkPMColor));
|
|
|
| @@ -809,9 +809,8 @@ SkRGB16_Shader_Xfermode_Blitter::SkRGB16_Shader_Xfermode_Blitter(
|
| SkShader::Context* shaderContext)
|
| : INHERITED(device, paint, shaderContext)
|
| {
|
| - fXfermode = paint.getXfermode();
|
| + fXfermode = SkXfermode::Peek(paint.getBlendMode());
|
| SkASSERT(fXfermode);
|
| - fXfermode->ref();
|
|
|
| int width = device.width();
|
| fBuffer = (SkPMColor*)sk_malloc_throw((width + (SkAlign4(width) >> 2)) * sizeof(SkPMColor));
|
| @@ -819,7 +818,6 @@ SkRGB16_Shader_Xfermode_Blitter::SkRGB16_Shader_Xfermode_Blitter(
|
| }
|
|
|
| SkRGB16_Shader_Xfermode_Blitter::~SkRGB16_Shader_Xfermode_Blitter() {
|
| - fXfermode->unref();
|
| sk_free(fBuffer);
|
| }
|
|
|
| @@ -897,14 +895,14 @@ SkBlitter* SkBlitter_ChooseD565(const SkPixmap& device, const SkPaint& paint,
|
|
|
| SkBlitter* blitter;
|
| SkShader* shader = paint.getShader();
|
| - SkXfermode* mode = paint.getXfermode();
|
| + bool is_srcover = paint.isSrcOver();
|
|
|
| // we require a shader if there is an xfermode, handled by our caller
|
| - SkASSERT(nullptr == mode || shader);
|
| + SkASSERT(is_srcover || shader);
|
|
|
| if (shader) {
|
| SkASSERT(shaderContext != nullptr);
|
| - if (mode) {
|
| + if (!is_srcover) {
|
| blitter = allocator->createT<SkRGB16_Shader_Xfermode_Blitter>(device, paint,
|
| shaderContext);
|
| } else {
|
|
|