Changeset 54724 in webkit for trunk/JavaScriptCore/wtf/RefPtr.h
- Timestamp:
- Feb 12, 2010, 6:29:02 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/wtf/RefPtr.h
r54596 r54724 39 39 public: 40 40 RefPtr() : m_ptr(0) { } 41 RefPtr(T* ptr) : m_ptr(ptr) { if (ptr) ptr->ref(); }42 RefPtr(const RefPtr& o) : m_ptr(o.m_ptr) { if (T* ptr = m_ptr) ptr->ref(); }41 RefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); } 42 RefPtr(const RefPtr& o) : m_ptr(o.m_ptr) { T* ptr = m_ptr; refIfNotNull(ptr); } 43 43 // see comment in PassRefPtr.h for why this takes const reference 44 44 template <typename U> RefPtr(const PassRefPtr<U>&); … … 54 54 ~RefPtr() { derefIfNotNull(m_ptr); } 55 55 56 template <typename U> RefPtr(const RefPtr<U>& o) : m_ptr(o.get()) { if (T* ptr = m_ptr) ptr->ref(); }56 template <typename U> RefPtr(const RefPtr<U>& o) : m_ptr(o.get()) { T* ptr = m_ptr; refIfNotNull(ptr); } 57 57 58 58 T* get() const { return m_ptr; } … … 99 99 { 100 100 T* optr = o.get(); 101 if (optr) 102 optr->ref(); 101 refIfNotNull(optr); 103 102 T* ptr = m_ptr; 104 103 m_ptr = optr; 105 if (ptr) 106 ptr->deref(); 104 derefIfNotNull(ptr); 107 105 return *this; 108 106 } … … 111 109 { 112 110 T* optr = o.get(); 113 if (optr) 114 optr->ref(); 111 refIfNotNull(optr); 115 112 T* ptr = m_ptr; 116 113 m_ptr = optr; 117 if (ptr) 118 ptr->deref(); 114 derefIfNotNull(ptr); 119 115 return *this; 120 116 } … … 122 118 template <typename T> inline RefPtr<T>& RefPtr<T>::operator=(T* optr) 123 119 { 124 if (optr) 125 optr->ref(); 120 refIfNotNull(optr); 126 121 T* ptr = m_ptr; 127 122 m_ptr = optr; 128 if (ptr) 129 ptr->deref(); 123 derefIfNotNull(ptr); 130 124 return *this; 131 125 } … … 135 129 T* ptr = m_ptr; 136 130 m_ptr = o.releaseRef(); 137 if (ptr) 138 ptr->deref(); 131 derefIfNotNull(ptr); 139 132 return *this; 140 133 } … … 144 137 T* ptr = m_ptr; 145 138 m_ptr = o.releaseRef(); 146 if (ptr) 147 ptr->deref(); 139 derefIfNotNull(ptr); 148 140 return *this; 149 141 } … … 153 145 T* ptr = m_ptr; 154 146 m_ptr = o.releaseRef(); 155 if (ptr) 156 ptr->deref(); 147 derefIfNotNull(ptr); 157 148 return *this; 158 149 } … … 162 153 T* ptr = m_ptr; 163 154 m_ptr = o.releaseRef(); 164 if (ptr) 165 ptr->deref(); 155 derefIfNotNull(ptr); 166 156 return *this; 167 157 }
Note:
See TracChangeset
for help on using the changeset viewer.