| Index: Source/wtf/OwnArrayPtr.h
|
| diff --git a/Source/wtf/OwnArrayPtr.h b/Source/wtf/OwnArrayPtr.h
|
| index a678159e096f6222d0ef67f281a4adac0eb68cff..ad39900f552f0ac0e7890145065f1fc7f8007758 100644
|
| --- a/Source/wtf/OwnArrayPtr.h
|
| +++ b/Source/wtf/OwnArrayPtr.h
|
| @@ -104,19 +104,17 @@ template<typename T> inline typename OwnArrayPtr<T>::PtrType OwnArrayPtr<T>::lea
|
|
|
| template<typename T> inline OwnArrayPtr<T>& OwnArrayPtr<T>::operator=(const PassOwnArrayPtr<T>& o)
|
| {
|
| - PtrType ptr = m_ptr;
|
| - m_ptr = o.leakPtr();
|
| - ASSERT(!ptr || m_ptr != ptr);
|
| - deleteOwnedArrayPtr(ptr);
|
| + ASSERT(!o || o != m_ptr);
|
| + OwnArrayPtr ptr = o;
|
| + swap(ptr);
|
| return *this;
|
| }
|
|
|
| template<typename T> template<typename U> inline OwnArrayPtr<T>& OwnArrayPtr<T>::operator=(const PassOwnArrayPtr<U>& o)
|
| {
|
| - PtrType ptr = m_ptr;
|
| - m_ptr = o.leakPtr();
|
| - ASSERT(!ptr || m_ptr != ptr);
|
| - deleteOwnedArrayPtr(ptr);
|
| + ASSERT(!o || o != m_ptr);
|
| + OwnArrayPtr ptr = o;
|
| + swap(ptr);
|
| return *this;
|
| }
|
|
|
|
|