aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/core/SkRefCnt.h6
-rw-r--r--tests/RefCntTest.cpp2
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 {