diff options
author | reed <reed@google.com> | 2016-03-18 11:22:57 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-18 11:22:57 -0700 |
commit | a439334b6e758d38501e225e2e5d0ab73e2fb6eb (patch) | |
tree | 8f2919ed2f6dcae5c4d5dbaaf608b5c6d248f2fc /src/core/SkPathEffect.cpp | |
parent | 0be9e806af72b3e029e691eef5c891c90d3fd320 (diff) |
Reland of "switch patheffects over to sk_sp (patchset #5 id:80001 of https://codereview.chromium.org/1813553005/ )"
This reverts commit f28ad894272018fd2855e3f77ea1236ea0cce1c0.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1813123003
TBR=
Review URL: https://codereview.chromium.org/1813123003
Diffstat (limited to 'src/core/SkPathEffect.cpp')
-rw-r--r-- | src/core/SkPathEffect.cpp | 46 |
1 files changed, 13 insertions, 33 deletions
diff --git a/src/core/SkPathEffect.cpp b/src/core/SkPathEffect.cpp index 293bb53b2c..b2e29bc09d 100644 --- a/src/core/SkPathEffect.cpp +++ b/src/core/SkPathEffect.cpp @@ -1,4 +1,3 @@ - /* * Copyright 2006 The Android Open Source Project * @@ -28,25 +27,19 @@ SkPathEffect::DashType SkPathEffect::asADash(DashInfo* info) const { /////////////////////////////////////////////////////////////////////////////// -SkPairPathEffect::SkPairPathEffect(SkPathEffect* pe0, SkPathEffect* pe1) - : fPE0(pe0), fPE1(pe1) { - SkASSERT(pe0); - SkASSERT(pe1); - fPE0->ref(); - fPE1->ref(); -} - -SkPairPathEffect::~SkPairPathEffect() { - SkSafeUnref(fPE0); - SkSafeUnref(fPE1); +SkPairPathEffect::SkPairPathEffect(sk_sp<SkPathEffect> pe0, sk_sp<SkPathEffect> pe1) + : fPE0(std::move(pe0)), fPE1(std::move(pe1)) +{ + SkASSERT(fPE0.get()); + SkASSERT(fPE1.get()); } /* Format: [oe0-factory][pe1-factory][pe0-size][pe0-data][pe1-data] */ void SkPairPathEffect::flatten(SkWriteBuffer& buffer) const { - buffer.writeFlattenable(fPE0); - buffer.writeFlattenable(fPE1); + buffer.writeFlattenable(fPE0.get()); + buffer.writeFlattenable(fPE1.get()); } #ifndef SK_IGNORE_TO_STRING @@ -65,22 +58,13 @@ void SkPairPathEffect::toString(SkString* str) const { /////////////////////////////////////////////////////////////////////////////// SkFlattenable* SkComposePathEffect::CreateProc(SkReadBuffer& buffer) { - SkAutoTUnref<SkPathEffect> pe0(buffer.readPathEffect()); - SkAutoTUnref<SkPathEffect> pe1(buffer.readPathEffect()); - if (pe0 && pe1) { - return SkComposePathEffect::Create(pe0, pe1); - } else { - return nullptr; - } + sk_sp<SkPathEffect> pe0(buffer.readPathEffect()); + sk_sp<SkPathEffect> pe1(buffer.readPathEffect()); + return SkComposePathEffect::Make(std::move(pe0), std::move(pe1)).release(); } bool SkComposePathEffect::filterPath(SkPath* dst, const SkPath& src, SkStrokeRec* rec, const SkRect* cullRect) const { - // we may have failed to unflatten these, so we have to check - if (!fPE0 || !fPE1) { - return false; - } - SkPath tmp; const SkPath* ptr = &src; @@ -102,13 +86,9 @@ void SkComposePathEffect::toString(SkString* str) const { /////////////////////////////////////////////////////////////////////////////// SkFlattenable* SkSumPathEffect::CreateProc(SkReadBuffer& buffer) { - SkAutoTUnref<SkPathEffect> pe0(buffer.readPathEffect()); - SkAutoTUnref<SkPathEffect> pe1(buffer.readPathEffect()); - if (pe0 && pe1) { - return SkSumPathEffect::Create(pe0, pe1); - } else { - return nullptr; - } + sk_sp<SkPathEffect> pe0(buffer.readPathEffect()); + sk_sp<SkPathEffect> pe1(buffer.readPathEffect()); + return SkSumPathEffect::Make(pe0, pe1).release(); } bool SkSumPathEffect::filterPath(SkPath* dst, const SkPath& src, |