Index: src/opts/SkBlitRow_opts.h |
diff --git a/src/opts/SkBlitRow_opts.h b/src/opts/SkBlitRow_opts.h |
index 94d9ee996eb258737e22d623e13063b134ac3d45..2a123f2dd7b0687fd7c2f2675e99c8c8cc834cc5 100644 |
--- a/src/opts/SkBlitRow_opts.h |
+++ b/src/opts/SkBlitRow_opts.h |
@@ -190,7 +190,11 @@ void blit_row_s32a_opaque(SkPMColor* dst, const SkPMColor* src, int len, U8CPU a |
#endif |
while (len-- > 0) { |
- if (*src) { |
+ // This 0xFF000000 is not semantically necessary, but for compatibility |
+ // with chromium:611002 we need to keep it until we figure out where |
+ // the non-premultiplied src values (like 0x00FFFFFF) are coming from. |
+ // TODO(mtklein): sort this out and assert *src is premul here. |
+ if (*src & 0xFF000000) { |
*dst = (*src >= 0xFF000000) ? *src : SkPMSrcOver(*src, *dst); |
} |
src++; |