Chromium Code Reviews| Index: src/effects/SkColorFilterImageFilter.cpp |
| diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp |
| index 2c3706769fa400a91e8ffdf3aa9a1e03c097e2e1..007890467f982933908313d4d475a3579351d9f8 100755 |
| --- a/src/effects/SkColorFilterImageFilter.cpp |
| +++ b/src/effects/SkColorFilterImageFilter.cpp |
| @@ -83,14 +83,30 @@ SkColorFilterImageFilter::SkColorFilterImageFilter(SkColorFilter* cf, |
| SkSafeRef(cf); |
| } |
| +#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING |
| SkColorFilterImageFilter::SkColorFilterImageFilter(SkReadBuffer& buffer) |
| : INHERITED(1, buffer) { |
| fColorFilter = buffer.readColorFilter(); |
| } |
| +#endif |
| -void SkColorFilterImageFilter::flatten(SkWriteBuffer& buffer) const { |
| - this->INHERITED::flatten(buffer); |
| +SkFlattenable* SkColorFilterImageFilter::CreateProc(SkReadBuffer& buffer) { |
| + Common common; |
| + if (!common.unflatten(buffer)) { |
| + return NULL; |
| + } |
| + |
| + SkAutoTUnref<SkColorFilter> cf(buffer.readColorFilter()); |
| + if (common.inputCount() > 1 || NULL == cf.get()) { |
|
Stephen White
2014/07/17 21:29:00
Nit: if we did pass the expected count to Common's
reed1
2014/07/18 13:40:30
The input-filter appears to be optional, reading t
Stephen White
2014/07/18 14:06:20
Yes, it's optional, in the sense that it can be NU
|
| + buffer.validate(false); |
| + return NULL; |
| + } |
| + SkImageFilter* imf = common.inputCount() ? common.inputs()[0] : NULL; |
| + return Create(cf, imf, &common.cropRect()); |
| +} |
| +void SkColorFilterImageFilter::flatten(SkWriteBuffer& buffer) const { |
| + this->flattenCommon(buffer); |
| buffer.writeFlattenable(fColorFilter); |
| } |