summaryrefslogtreecommitdiff
path: root/Source/WTF/wtf/MallocPtr.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WTF/wtf/MallocPtr.h')
-rw-r--r--Source/WTF/wtf/MallocPtr.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/Source/WTF/wtf/MallocPtr.h b/Source/WTF/wtf/MallocPtr.h
index 63a1fa4bf..0184b4f72 100644
--- a/Source/WTF/wtf/MallocPtr.h
+++ b/Source/WTF/wtf/MallocPtr.h
@@ -61,9 +61,7 @@ public:
T *leakPtr() WARN_UNUSED_RETURN
{
- T* ptr = m_ptr;
- m_ptr = nullptr;
- return ptr;
+ return std::exchange(m_ptr, nullptr);
}
bool operator!() const
@@ -73,7 +71,7 @@ public:
MallocPtr& operator=(MallocPtr&& other)
{
- MallocPtr ptr = std::move(other);
+ MallocPtr ptr = WTFMove(other);
swap(ptr);
return *this;
@@ -86,6 +84,19 @@ public:
template<typename U> friend MallocPtr<U> adoptMallocPtr(U*);
+ static MallocPtr malloc(size_t size)
+ {
+ MallocPtr mallocPtr;
+ mallocPtr.m_ptr = static_cast<T*>(fastMalloc(size));
+
+ return mallocPtr;
+ }
+
+ void realloc(size_t newSize)
+ {
+ m_ptr = static_cast<T*>(fastRealloc(m_ptr, newSize));
+ }
+
private:
explicit MallocPtr(T* ptr)
: m_ptr(ptr)