aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/effects/SkPictureImageFilter.cpp18
-rw-r--r--tests/ImageFilterTest.cpp4
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) {