| Index: include/effects/SkComposeImageFilter.h
|
| diff --git a/include/effects/SkComposeImageFilter.h b/include/effects/SkComposeImageFilter.h
|
| index cf73a001c87bf15fd22cce05b6a0bce74e968d49..49c768541514b4e7d4dc717ffc88ad5676224930 100644
|
| --- a/include/effects/SkComposeImageFilter.h
|
| +++ b/include/effects/SkComposeImageFilter.h
|
| @@ -12,25 +12,32 @@
|
|
|
| class SK_API SkComposeImageFilter : public SkImageFilter {
|
| public:
|
| - static SkImageFilter* Create(SkImageFilter* outer, SkImageFilter* inner) {
|
| + static sk_sp<SkImageFilter> Make(sk_sp<SkImageFilter> outer, sk_sp<SkImageFilter> inner) {
|
| if (!outer) {
|
| - return SkSafeRef(inner);
|
| + return inner;
|
| }
|
| if (!inner) {
|
| - return SkRef(outer);
|
| + return outer;
|
| }
|
| - SkImageFilter* inputs[2] = { outer, inner };
|
| - return new SkComposeImageFilter(inputs);
|
| + sk_sp<SkImageFilter> inputs[2] = { std::move(outer), std::move(inner) };
|
| + return sk_sp<SkImageFilter>(new SkComposeImageFilter(inputs));
|
| }
|
| SkRect computeFastBounds(const SkRect& src) const override;
|
|
|
| SK_TO_STRING_OVERRIDE()
|
| SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeImageFilter)
|
|
|
| +#ifdef SK_SUPPORT_LEGACY_IMAGEFILTER_PTR
|
| + static SkImageFilter* Create(SkImageFilter* outer, SkImageFilter* inner) {
|
| + return Make(sk_ref_sp<SkImageFilter>(outer),
|
| + sk_ref_sp<SkImageFilter>(inner)).release();
|
| + }
|
| +#endif
|
| +
|
| protected:
|
| - explicit SkComposeImageFilter(SkImageFilter* inputs[2]) : INHERITED(2, inputs) {
|
| - SkASSERT(inputs[0]);
|
| - SkASSERT(inputs[1]);
|
| + explicit SkComposeImageFilter(sk_sp<SkImageFilter> inputs[2]) : INHERITED(inputs, 2, nullptr) {
|
| + SkASSERT(inputs[0].get());
|
| + SkASSERT(inputs[1].get());
|
| }
|
| sk_sp<SkSpecialImage> onFilterImage(SkSpecialImage* source, const Context&,
|
| SkIPoint* offset) const override;
|
|
|