Commit e5b9706f authored by dickelbeck's avatar dickelbeck
Browse files

Trap bad text layer numbers with DisplayError

parent 3fa93818
Loading
Loading
Loading
Loading
+42 −7
Original line number Original line Diff line number Diff line
@@ -217,9 +217,18 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( int format_plot,
        trace_ref = Sel_Texte_Reference; // les 2 autorisations de tracer sont donnees
        trace_ref = Sel_Texte_Reference; // les 2 autorisations de tracer sont donnees


        TEXTE_MODULE* text      = Module->m_Reference;
        TEXTE_MODULE* text      = Module->m_Reference;
        int           textLayer = text->GetLayer();
        unsigned      textLayer = text->GetLayer();


        wxASSERT( (unsigned) textLayer < 32 );
        if( textLayer >= 32 )
        {
            wxString errMsg;

            errMsg.Printf(
              _("Your BOARD has a bad layer number of %u for module\n %s's \"reference\" text."),
              textLayer, Module->GetReference().GetData() );
            DisplayError( this, errMsg );
            goto exit;
        }


        if( ( (1 << textLayer) & masque_layer ) == 0 )
        if( ( (1 << textLayer) & masque_layer ) == 0 )
            trace_ref = FALSE;
            trace_ref = FALSE;
@@ -230,7 +239,16 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( int format_plot,
        text      = Module->m_Value;
        text      = Module->m_Value;
        textLayer = text->GetLayer();
        textLayer = text->GetLayer();


        wxASSERT( (unsigned) textLayer < 32 );
        if( textLayer > 32 )
        {
            wxString errMsg;

            errMsg.Printf(
              _("Your BOARD has a bad layer number of %u for module\n %s's \"value\" text."),
              textLayer, Module->GetReference().GetData() );
            DisplayError( this, errMsg );
            goto exit;
        }


        if( ( (1 << textLayer) & masque_layer ) == 0 )
        if( ( (1 << textLayer) & masque_layer ) == 0 )
            trace_val = FALSE;
            trace_val = FALSE;
@@ -265,14 +283,31 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( int format_plot,
                continue;
                continue;
            if( (pt_texte->m_NoShow) && !Sel_Texte_Invisible )
            if( (pt_texte->m_NoShow) && !Sel_Texte_Invisible )
                continue;
                continue;
            if( (g_TabOneLayerMask[pt_texte->GetLayer()] & masque_layer) == 0 )

            textLayer = pt_texte->GetLayer();
            if( textLayer >= 32 )
            {
                wxString errMsg;

                errMsg.Printf(
                  _("Your BOARD has a bad layer number of %u for module\n %s's \"module text\" text of %s."),
                  textLayer, Module->GetReference().GetData(), pt_texte->m_Text.GetData() );
                DisplayError( this, errMsg );
                goto exit;
            }

            if( !( (1<<textLayer) & masque_layer ) )
                continue;
                continue;

            PlotTextModule( pt_texte );
            PlotTextModule( pt_texte );
            nb_items++;
            nb_items++;
            msg.Printf( wxT( "%d" ), nb_items );
            msg.Printf( wxT( "%d" ), nb_items );
            Affiche_1_Parametre( this, 64, wxEmptyString, msg, LIGHTBLUE );
            Affiche_1_Parametre( this, 64, wxEmptyString, msg, LIGHTBLUE );
        }
        }
    }
    }

exit:
    ;
}
}