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];
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;
}