diff options
author | mtklein <mtklein@google.com> | 2016-01-24 19:49:24 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-24 19:49:24 -0800 |
commit | 1138be45eac9dd21b094c9774a6f9c612f9f8fa8 (patch) | |
tree | 5f87d06c8420e41f3b2595b5f401f7188367f3b3 /include/core/SkRefCnt.h | |
parent | ccf1de0d9aa75f29829f1c4c462214b991fd8c9e (diff) |
Revert of skstd -> std for unique_ptr (patchset #24 id:460001 of https://codereview.chromium.org/1436033003/ )
Reason for revert:
Still need an answer for SkAdvancedTypefaceMetrics (at least for Google3 iOS build).
Original issue's description:
> skstd -> std for unique_ptr
>
> TBR=reed@google.com
> No public API changes.
>
> BUG=skia:4564
>
> Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50
>
> CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot;client.skia:Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release-Trybot,Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065
>
> Committed: https://skia.googlesource.com/skia/+/70e8dfca4a7f5bce97b8021a6e378c4828b09c8c
>
> Committed: https://skia.googlesource.com/skia/+/dadfc245cc9a0279ff7b73da3344f2ca5d139907
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1436033003
>
> Committed: https://skia.googlesource.com/skia/+/ccf1de0d9aa75f29829f1c4c462214b991fd8c9e
TBR=bungeman@google.com,mtklein@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4564
Review URL: https://codereview.chromium.org/1626873004
Diffstat (limited to 'include/core/SkRefCnt.h')
-rw-r--r-- | include/core/SkRefCnt.h | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/include/core/SkRefCnt.h b/include/core/SkRefCnt.h index 1779278c6f..9d1e5f1f02 100644 --- a/include/core/SkRefCnt.h +++ b/include/core/SkRefCnt.h @@ -9,8 +9,8 @@ #define SkRefCnt_DEFINED #include "../private/SkAtomics.h" +#include "../private/SkUniquePtr.h" #include "SkTypes.h" -#include <memory> /** \class SkRefCntBase @@ -185,22 +185,12 @@ template <typename T> struct SkTUnref { /** * Utility class that simply unref's its argument in the destructor. */ -template <typename T> class SkAutoTUnref { +template <typename T> class SkAutoTUnref : public skstd::unique_ptr<T, SkTUnref<T>> { public: - explicit SkAutoTUnref(T* obj = nullptr) : fPtr(obj) {} + explicit SkAutoTUnref(T* obj = nullptr) : skstd::unique_ptr<T, SkTUnref<T>>(obj) {} - void swap(SkAutoTUnref& other) { fPtr.swap(other.fPtr); } - - T* get() const { return fPtr.get(); } - operator T* () const { return fPtr.get(); } - T* operator->() const { return fPtr.get(); } - - void reset(T* ptr = nullptr) { fPtr.reset(ptr); } - T* detach() { return fPtr.release(); } - T* release() { return fPtr.release(); } - -private: - std::unique_ptr<T, SkTUnref<T>> fPtr; + T* detach() { return this->release(); } + operator T*() const { return this->get(); } }; // Can't use the #define trick below to guard a bare SkAutoTUnref(...) because it's templated. :( |