void compressOffsetArray ( int i0 ) { int i_ = i0 ; while ( m_offsetPts . get ( i_ ) . m_prev < i_ ) i_ = m_offsetPts . get ( i_ ) . m_prev ; int j = 0 , i = i_ ; do { GraphicPoint pt = m_offsetPts . get ( i ) ; m_offsetPts . set ( j , pt ) ; i = pt . m_next ; j ++ ; } while ( i != i_ ) ; m_offsetPts . set ( j , m_offsetPts . get ( 0 ) ) ; // duplicate closing point m_offsetPtCount = j + 1 ; }
is its the index of a point that isn t part of a deleted loop