diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WTF/wtf/MallocPtr.h | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WTF/wtf/MallocPtr.h')
-rw-r--r-- | Source/WTF/wtf/MallocPtr.h | 19 |
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) |