Check for self-assignment in operator=

This commit is contained in:
Paul Cornett
2019-02-25 00:48:41 -08:00
parent 90ecc401c0
commit 60fb8f93cb
2 changed files with 12 additions and 7 deletions

View File

@@ -478,9 +478,12 @@ wxMask::wxMask(const wxMask &mask)
wxMask& wxMask::operator=(const wxMask &mask) wxMask& wxMask::operator=(const wxMask &mask)
{ {
delete m_qtBitmap; if (this != &mask)
QBitmap *mask_bmp = mask.GetHandle(); {
m_qtBitmap = mask_bmp ? new QBitmap(*mask_bmp) : NULL; delete m_qtBitmap;
QBitmap *mask_bmp = mask.GetHandle();
m_qtBitmap = mask_bmp ? new QBitmap(*mask_bmp) : NULL;
}
return *this; return *this;
} }

View File

@@ -351,10 +351,12 @@ wxRegionIterator::~wxRegionIterator()
wxRegionIterator& wxRegionIterator::operator=(const wxRegionIterator& ri) wxRegionIterator& wxRegionIterator::operator=(const wxRegionIterator& ri)
{ {
delete m_qtRects; if (this != &ri)
{
m_qtRects = new QVector< QRect >( *ri.m_qtRects ); delete m_qtRects;
m_pos = ri.m_pos; m_qtRects = new QVector< QRect >( *ri.m_qtRects );
m_pos = ri.m_pos;
}
return *this; return *this;
} }