diff --git a/pcbnew/zone_filler.cpp b/pcbnew/zone_filler.cpp index 2f6c07635f..3c76d3bb03 100644 --- a/pcbnew/zone_filler.cpp +++ b/pcbnew/zone_filler.cpp @@ -191,16 +191,16 @@ bool ZONE_FILLER::Fill( std::vector aZones, bool aCheck ) for( auto& zone : toFill ) { - // Non-net zones do not have islands by definition - if( zone.m_zone->GetNetCode() <= 0 ) - continue; - std::sort( zone.m_islands.begin(), zone.m_islands.end(), std::greater() ); SHAPE_POLY_SET poly = zone.m_zone->GetFilledPolysList(); - for( auto idx : zone.m_islands ) + // only zones with net code > 0 can have islands to remove by definition + if( zone.m_zone->GetNetCode() > 0 ) { - poly.DeletePolygon( idx ); + for( auto idx : zone.m_islands ) + { + poly.DeletePolygon( idx ); + } } zone.m_zone->SetFilledPolysList( poly );