diff --git a/eeschema/sch_painter.cpp b/eeschema/sch_painter.cpp index 5caa119d54..7759513cf4 100644 --- a/eeschema/sch_painter.cpp +++ b/eeschema/sch_painter.cpp @@ -1491,17 +1491,22 @@ void SCH_PAINTER::draw( const SCH_SHAPE* aShape, int aLayer, bool aDimmed ) case SHAPE_T::POLY: { const std::vector polySegments = shape->MakeEffectiveShapes( true ); - std::deque pts; - for( SHAPE* polySegment : polySegments ) - pts.push_back( static_cast( polySegment )->GetSeg().A ); + if( !polySegments.empty() ) + { + std::deque pts; - pts.push_back( static_cast( polySegments.back() )->GetSeg().B ); + for( SHAPE* polySegment : polySegments ) + pts.push_back( static_cast( polySegment )->GetSeg().A ); - for( SHAPE* polySegment : polySegments ) - delete polySegment; + pts.push_back( + static_cast( polySegments.back() )->GetSeg().B ); - m_gal->DrawPolygon( pts ); + for( SHAPE* polySegment : polySegments ) + delete polySegment; + + m_gal->DrawPolygon( pts ); + } break; } @@ -2675,7 +2680,7 @@ void SCH_PAINTER::draw( const SCH_SHEET* aSheet, int aLayer ) { bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS; bool DNP = aSheet->GetDNP(); - bool markExclusion = eeconfig()->m_Appearance.mark_sim_exclusions + bool markExclusion = eeconfig()->m_Appearance.mark_sim_exclusions && aSheet->GetExcludedFromSim(); if( m_schSettings.IsPrinting() && drawingShadows )