diff options
author | halcanary <halcanary@google.com> | 2016-03-02 08:06:20 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-02 08:06:20 -0800 |
commit | 217c0b3f137d824413e806759bc25378abbe8c18 (patch) | |
tree | 8326a2a4f1946aed6cb16688b924ae2511997fba | |
parent | 734949099166f7bc446a352ce3596dc009484f59 (diff) |
sk_make_sp<T>()
because
auto atm = sk_make_sp<SkAdvancedTypefaceMetrics>();
is better than
sk_sp<SkAdvancedTypefaceMetrics> atm(new SkAdvancedTypefaceMetrics);
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1753973002
Review URL: https://codereview.chromium.org/1753973002
-rw-r--r-- | include/core/SkRefCnt.h | 6 | ||||
-rw-r--r-- | tests/RefCntTest.cpp | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/include/core/SkRefCnt.h b/include/core/SkRefCnt.h index 43251d0788..e2cf4456f8 100644 --- a/include/core/SkRefCnt.h +++ b/include/core/SkRefCnt.h @@ -11,6 +11,7 @@ #include "../private/SkAtomics.h" #include "../private/SkUniquePtr.h" #include "SkTypes.h" +#include <utility> /** \class SkRefCntBase @@ -326,4 +327,9 @@ private: T* fPtr; }; +template <typename T, typename... Args> +sk_sp<T> sk_make_sp(Args&&... args) { + return sk_sp<T>(new T(std::forward<Args>(args)...)); +} + #endif diff --git a/tests/RefCntTest.cpp b/tests/RefCntTest.cpp index e3f41bdd5d..e9d582d809 100644 --- a/tests/RefCntTest.cpp +++ b/tests/RefCntTest.cpp @@ -120,7 +120,7 @@ public: }; static sk_sp<Effect> Create() { - return sk_sp<Effect>(new Effect); + return sk_make_sp<Effect>(); } class Paint { |