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)
{ {
if (this != &mask)
{
delete m_qtBitmap; delete m_qtBitmap;
QBitmap *mask_bmp = mask.GetHandle(); QBitmap *mask_bmp = mask.GetHandle();
m_qtBitmap = mask_bmp ? new QBitmap(*mask_bmp) : NULL; 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)
{ {
if (this != &ri)
{
delete m_qtRects; delete m_qtRects;
m_qtRects = new QVector< QRect >( *ri.m_qtRects ); m_qtRects = new QVector< QRect >( *ri.m_qtRects );
m_pos = ri.m_pos; m_pos = ri.m_pos;
}
return *this; return *this;
} }