Chromium Code Reviews| Index: src/effects/SkXfermodeImageFilter.cpp |
| diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp |
| index 09651b632c56df68cff2794b927a945665f2346f..a1a6fac243210494e4bd8450bd6b5b357e0c2149 100644 |
| --- a/src/effects/SkXfermodeImageFilter.cpp |
| +++ b/src/effects/SkXfermodeImageFilter.cpp |
| @@ -23,22 +23,29 @@ |
| /////////////////////////////////////////////////////////////////////////////// |
| -SkXfermodeImageFilter::SkXfermodeImageFilter(SkXfermode* mode, |
| +sk_sp<SkImageFilter> SkXfermodeImageFilter::Make(sk_sp<SkXfermode> mode, SkImageFilter* background, |
| + SkImageFilter* foreground, |
| + const CropRect* cropRect) { |
| + SkImageFilter* inputs[2] = { background, foreground }; |
| + return sk_sp<SkImageFilter>(new SkXfermodeImageFilter(mode, inputs, cropRect)); |
| +} |
| + |
| +SkXfermodeImageFilter::SkXfermodeImageFilter(sk_sp<SkXfermode> mode, |
| SkImageFilter* inputs[2], |
| const CropRect* cropRect) |
| : INHERITED(2, inputs, cropRect) |
| - , fMode(SkSafeRef(mode)) { |
| -} |
| + , fMode(std::move(mode)) |
| +{} |
| SkFlattenable* SkXfermodeImageFilter::CreateProc(SkReadBuffer& buffer) { |
| SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2); |
| - SkAutoTUnref<SkXfermode> mode(buffer.readXfermode()); |
| - return Create(mode, common.getInput(0), common.getInput(1), &common.cropRect()); |
| + sk_sp<SkXfermode> mode(buffer.readXfermode()); |
| + return Make(mode, common.getInput(0), common.getInput(1), &common.cropRect()).release(); |
|
f(malita)
2016/03/28 18:44:59
nit: std::move(mode), or inline?
reed1
2016/03/29 16:13:52
Done.
|
| } |
| void SkXfermodeImageFilter::flatten(SkWriteBuffer& buffer) const { |
| this->INHERITED::flatten(buffer); |
| - buffer.writeFlattenable(fMode); |
| + buffer.writeFlattenable(fMode.get()); |
| } |
| bool SkXfermodeImageFilter::onFilterImageDeprecated(Proxy* proxy, |