]> git.saurik.com Git - wxWidgets.git/commitdiff
check for self-assignment in operator=
authorPaul Cornett <paulcor@bullseye.com>
Fri, 25 Nov 2011 01:01:26 +0000 (01:01 +0000)
committerPaul Cornett <paulcor@bullseye.com>
Fri, 25 Nov 2011 01:01:26 +0000 (01:01 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69817 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/region.cpp

index dcf7ee5b2bf40a7d86215dad9ff8283a3fb31199..92ec47f1e790cf18884d97512405345fee55a8d4 100644 (file)
@@ -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;
 }