| Index: Source/wtf/OwnPtr.h
|
| diff --git a/Source/wtf/OwnPtr.h b/Source/wtf/OwnPtr.h
|
| index e5baf9341e8ae4ff56e68536d470c6dedbfb087b..61609386abaa6b23033030dcc9adfc37c3a38c16 100644
|
| --- a/Source/wtf/OwnPtr.h
|
| +++ b/Source/wtf/OwnPtr.h
|
| @@ -137,19 +137,17 @@ namespace WTF {
|
|
|
| template<typename T> inline OwnPtr<T>& OwnPtr<T>::operator=(const PassOwnPtr<T>& o)
|
| {
|
| - PtrType ptr = m_ptr;
|
| - m_ptr = o.leakPtr();
|
| - ASSERT(!ptr || m_ptr != ptr);
|
| - deleteOwnedPtr(ptr);
|
| + ASSERT(!o || o != m_ptr);
|
| + OwnPtr ptr = o;
|
| + swap(ptr);
|
| return *this;
|
| }
|
|
|
| template<typename T> template<typename U> inline OwnPtr<T>& OwnPtr<T>::operator=(const PassOwnPtr<U>& o)
|
| {
|
| - PtrType ptr = m_ptr;
|
| - m_ptr = o.leakPtr();
|
| - ASSERT(!ptr || m_ptr != ptr);
|
| - deleteOwnedPtr(ptr);
|
| + ASSERT(!o || o != m_ptr);
|
| + OwnPtr ptr = o;
|
| + swap(ptr);
|
| return *this;
|
| }
|
|
|
|
|