X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dd4eefcb295ebf35917a8e3d11fa3082019cf86f..1aca9fcdfc51f165210a9976f28afb192bfb252f:/src/gtk/region.cpp diff --git a/src/gtk/region.cpp b/src/gtk/region.cpp index cf1d5d363b..92ec47f1e7 100644 --- a/src/gtk/region.cpp +++ b/src/gtk/region.cpp @@ -370,15 +370,13 @@ void wxRegionIterator::CreateRects( const wxRegion& region ) if (!gdkregion) return; - GdkRectangle *gdkrects = NULL; - gint numRects = 0; - gdk_region_get_rectangles( gdkregion, &gdkrects, &numRects ); + GdkRectangle* gdkrects; + gdk_region_get_rectangles(gdkregion, &gdkrects, &m_numRects); - m_numRects = numRects; - if (numRects) + if (m_numRects) { m_rects = new wxRect[m_numRects]; - for (size_t i=0; i < m_numRects; ++i) + for (int i = 0; i < m_numRects; ++i) { GdkRectangle &gr = gdkrects[i]; wxRect &wr = m_rects[i]; @@ -460,20 +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 ) - { - m_rects = new wxRect[m_numRects]; - for ( unsigned int n = 0; n < m_numRects; n++ ) - m_rects[n] = ri.m_rects[n]; - } - else + if (this != &ri) { - m_rects = NULL; - } + 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; }