diff options
-rw-r--r-- | src/effects/SkPictureImageFilter.cpp | 18 | ||||
-rw-r--r-- | tests/ImageFilterTest.cpp | 4 |
2 files changed, 16 insertions, 6 deletions
diff --git a/src/effects/SkPictureImageFilter.cpp b/src/effects/SkPictureImageFilter.cpp index 37d86ce0d2..391af11169 100644 --- a/src/effects/SkPictureImageFilter.cpp +++ b/src/effects/SkPictureImageFilter.cpp @@ -39,12 +39,15 @@ SkFlattenable* SkPictureImageFilter::CreateProc(SkReadBuffer& buffer) { SkAutoTUnref<SkPicture> picture; SkRect cropRect; - if (!buffer.isCrossProcess()) { +#ifdef SK_DISALLOW_CROSSPROCESS_PICTUREIMAGEFILTERS + if (buffer.isCrossProcess()) { + buffer.validate(!buffer.readBool()); + } else +#endif + { if (buffer.readBool()) { picture.reset(SkPicture::CreateFromBuffer(buffer)); } - } else { - buffer.validate(!buffer.readBool()); } buffer.readRect(&cropRect); PictureResolution pictureResolution; @@ -68,14 +71,17 @@ SkFlattenable* SkPictureImageFilter::CreateProc(SkReadBuffer& buffer) { } void SkPictureImageFilter::flatten(SkWriteBuffer& buffer) const { - if (!buffer.isCrossProcess()) { +#ifdef SK_DISALLOW_CROSSPROCESS_PICTUREIMAGEFILTERS + if (buffer.isCrossProcess()) { + buffer.writeBool(false); + } else +#endif + { bool hasPicture = (fPicture != NULL); buffer.writeBool(hasPicture); if (hasPicture) { fPicture->flatten(buffer); } - } else { - buffer.writeBool(false); } buffer.writeRect(fCropRect); buffer.writeInt(fPictureResolution); diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp index b67383682b..add9e23bba 100644 --- a/tests/ImageFilterTest.cpp +++ b/tests/ImageFilterTest.cpp @@ -802,8 +802,12 @@ DEF_TEST(ImageFilterCrossProcessPictureImageFilter, reporter) { canvas.clear(0x0); canvas.drawPicture(crossProcessPicture); pixel = *bitmap.getAddr32(0, 0); +#ifdef SK_DISALLOW_CROSSPROCESS_PICTUREIMAGEFILTERS // The result here should not be green, since the filter draws nothing. REPORTER_ASSERT(reporter, pixel != SK_ColorGREEN); +#else + REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); +#endif } DEF_TEST(ImageFilterClippedPictureImageFilter, reporter) { |