Changeset 37660 in webkit for trunk/JavaScriptCore/wtf/GOwnPtr.h
- Timestamp:
- Oct 17, 2008, 2:16:01 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/wtf/GOwnPtr.h
r37556 r37660 29 29 30 30 namespace WTF { 31 template <typename T> inline void freeOwned Ptr(T* ptr) { g_free(reinterpret_cast<void*>(ptr)); }32 template<> void freeOwned Ptr<GError>(GError*);33 template<> void freeOwned Ptr<GList>(GList*);34 template<> void freeOwned Ptr<GCond>(GCond*);35 template<> void freeOwned Ptr<GMutex>(GMutex*);36 template<> void freeOwned Ptr<GPatternSpec>(GPatternSpec*);37 template<> void freeOwned Ptr<GDir>(GDir*);31 template <typename T> inline void freeOwnedGPtr(T* ptr) { g_free(reinterpret_cast<void*>(ptr)); } 32 template<> void freeOwnedGPtr<GError>(GError*); 33 template<> void freeOwnedGPtr<GList>(GList*); 34 template<> void freeOwnedGPtr<GCond>(GCond*); 35 template<> void freeOwnedGPtr<GMutex>(GMutex*); 36 template<> void freeOwnedGPtr<GPatternSpec>(GPatternSpec*); 37 template<> void freeOwnedGPtr<GDir>(GDir*); 38 38 39 39 template <typename T> class GOwnPtr : Noncopyable { 40 40 public: 41 41 explicit GOwnPtr(T* ptr = 0) : m_ptr(ptr) { } 42 ~GOwnPtr() { freeOwned Ptr(m_ptr); }42 ~GOwnPtr() { freeOwnedGPtr(m_ptr); } 43 43 44 44 T* get() const { return m_ptr; } 45 45 T* release() { T* ptr = m_ptr; m_ptr = 0; return ptr; } 46 T*& rawPtr() {return m_ptr; }46 T*& outPtr() { ASSERT(!m_ptr); return m_ptr; } 47 47 48 void set(T* ptr) { ASSERT(!ptr || m_ptr != ptr); freeOwned Ptr(m_ptr); m_ptr = ptr; }49 void clear() { freeOwned Ptr(m_ptr); m_ptr = 0; }48 void set(T* ptr) { ASSERT(!ptr || m_ptr != ptr); freeOwnedGPtr(m_ptr); m_ptr = ptr; } 49 void clear() { freeOwnedGPtr(m_ptr); m_ptr = 0; } 50 50 51 51 T& operator*() const { ASSERT(m_ptr); return *m_ptr; }
Note:
See TracChangeset
for help on using the changeset viewer.