[WTF] Add makeUnique<T>, which ensures T is fast-allocated, makeUnique / makeUniqueWi...
[WebKit-https.git] / Source / WTF / wtf / UniqueRef.h
index 73e9dfe..998b43e 100644 (file)
@@ -33,11 +33,17 @@ namespace WTF {
 template<typename T> class UniqueRef;
 
 template<typename T, class... Args>
-UniqueRef<T> makeUniqueRef(Args&&... args)
+UniqueRef<T> makeUniqueRefWithoutFastMallocCheck(Args&&... args)
 {
     return UniqueRef<T>(*new T(std::forward<Args>(args)...));
 }
 
+template<typename T, class... Args>
+UniqueRef<T> makeUniqueRef(Args&&... args)
+{
+    return makeUniqueRefWithoutFastMallocCheck<T>(std::forward<Args>(args)...);
+}
+
 template<typename T>
 class UniqueRef {
 public:
@@ -63,7 +69,7 @@ public:
     std::unique_ptr<T> moveToUniquePtr() { return WTFMove(m_ref); }
 
 private:
-    template<class U, class... Args> friend UniqueRef<U> makeUniqueRef(Args&&...);
+    template<class U, class... Args> friend UniqueRef<U> makeUniqueRefWithoutFastMallocCheck(Args&&...);
     template<class U> friend class UniqueRef;
 
     UniqueRef(T& other)
@@ -79,3 +85,4 @@ private:
 
 using WTF::UniqueRef;
 using WTF::makeUniqueRef;
+using WTF::makeUniqueRefWithoutFastMallocCheck;