diff --git a/modules/geom/src/composite2.cc b/modules/geom/src/composite2.cc index b72d334ddd4bbd7ae0885dd7af55e4792281dfaa..8a6aec909cdd9a9a8bbda1ffbf49e20add92f770 100644 --- a/modules/geom/src/composite2.cc +++ b/modules/geom/src/composite2.cc @@ -291,15 +291,17 @@ Polygon2::circular_iterator Polygon2::FindSegment(std::vector<Vec2>::const_itera } void Polygon2::Erase(circular_iterator first,circular_iterator last) { + std::vector<Vec2>::iterator vfirst=first,vlast=last; if(first!=cbegin()){ for(circular_iterator it=first;it!=last;++it){ if(it==cbegin()){ //special case with wrap around - std::vector<Vec2>::erase(first,end()); - std::vector<Vec2>::erase(begin(),last); + std::vector<Vec2>::iterator vbegin=begin(),vend=end(); + std::vector<Vec2>::erase(vfirst,vend); + std::vector<Vec2>::erase(vbegin,vlast); } } } - std::vector<Vec2>::erase(first,last); + std::vector<Vec2>::erase(vfirst,vlast); } Circle2::Circle2():