From: Paul Cornett Date: Fri, 25 Nov 2011 01:01:26 +0000 (+0000) Subject: check for self-assignment in operator= X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/701871dc87386acb7178edab44d68a307bc0f132 check for self-assignment in operator= git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69817 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/gtk/region.cpp b/src/gtk/region.cpp index dcf7ee5b2b..92ec47f1e7 100644 --- a/src/gtk/region.cpp +++ b/src/gtk/region.cpp @@ -458,15 +458,17 @@ wxRect wxRegionIterator::GetRect() const wxRegionIterator& wxRegionIterator::operator=(const wxRegionIterator& ri) { - wxDELETEA(m_rects); - - m_current = ri.m_current; - m_numRects = ri.m_numRects; - if ( m_numRects ) + if (this != &ri) { - m_rects = new wxRect[m_numRects]; - memcpy(m_rects, ri.m_rects, m_numRects * sizeof m_rects[0]); - } + wxDELETEA(m_rects); + m_current = ri.m_current; + m_numRects = ri.m_numRects; + if ( m_numRects ) + { + m_rects = new wxRect[m_numRects]; + memcpy(m_rects, ri.m_rects, m_numRects * sizeof m_rects[0]); + } + } return *this; }