(svn r10647) -Fix: AutoPtrT::operator =() didn't delete old object

This commit is contained in:
KUDr 2007-07-21 14:01:12 +00:00
parent 43ddd64817
commit d3c20d65bd
1 changed files with 8 additions and 0 deletions

View File

@ -81,8 +81,16 @@ public:
/** assignment operator */
FORCEINLINE AutoPtrT& operator = (const AutoPtrT& src)
{
/* Save original pointer and replace it with the given one to avoid recursive calls. */
T* p = m_p;
m_p = src.m_p;
if (m_p != NULL) src.m_p = NULL;
if (p != NULL) {
/* Now we can safely delete the old one. */
delete p;
}
return *this;
}