Changeset 62674 in webkit for trunk/JavaScriptCore/wtf/OwnArrayPtr.h
- Timestamp:
- Jul 7, 2010, 9:07:29 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/wtf/OwnArrayPtr.h
r60417 r62674 31 31 public: 32 32 explicit OwnArrayPtr(T* ptr = 0) : m_ptr(ptr) { } 33 ~OwnArrayPtr() { safeDelete( ); }33 ~OwnArrayPtr() { safeDelete(m_ptr); } 34 34 35 35 T* get() const { return m_ptr; } 36 36 T* release() { T* ptr = m_ptr; m_ptr = 0; return ptr; } 37 37 38 // FIXME: This should be re named to adopt.38 // FIXME: This should be removed and replaced with PassOwnArrayPtr. 39 39 void set(T* ptr) 40 40 { 41 41 ASSERT(!ptr || m_ptr != ptr); 42 safeDelete();42 T* oldPtr = m_ptr; 43 43 m_ptr = ptr; 44 safeDelete(oldPtr); 44 45 } 45 46 46 void clear() { safeDelete(); m_ptr = 0; }47 void clear(); 47 48 48 49 T& operator*() const { ASSERT(m_ptr); return *m_ptr; } … … 64 65 65 66 private: 66 void safeDelete() { typedef char known[sizeof(T) ? 1 : -1]; if (sizeof(known)) delete [] m_ptr; }67 static void safeDelete(T*); 67 68 68 69 T* m_ptr; 69 70 }; 70 71 72 template<typename T> inline void OwnArrayPtr<T>::clear() 73 { 74 T* ptr = m_ptr; 75 m_ptr = 0; 76 safeDelete(ptr); 77 } 78 79 template<typename T> inline void OwnArrayPtr<T>::safeDelete(T* ptr) 80 { 81 typedef char known[sizeof(T) ? 1 : -1]; 82 if (sizeof(known)) 83 delete [] ptr; 84 } 85 71 86 template <typename T> inline void swap(OwnArrayPtr<T>& a, OwnArrayPtr<T>& b) { a.swap(b); } 72 87
Note:
See TracChangeset
for help on using the changeset viewer.