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; |