Loading pcbnew/class_board.h +12 −5 Original line number Diff line number Diff line Loading @@ -89,11 +89,18 @@ enum LAYER_T */ struct LAYER { LAYER() : m_type( LT_SIGNAL ), m_visible( true ), m_number( 0 ) {} LAYER() { clear(); } void clear() { m_type = LT_SIGNAL; m_visible = true; m_number = 0; m_name.clear(); } /* LAYER( const wxString& aName = wxEmptyString, Loading pcbnew/pcb_parser.cpp +28 −27 Original line number Diff line number Diff line Loading @@ -703,6 +703,8 @@ void PCB_PARSER::parseLayer( LAYER* aLayer ) throw( IO_ERROR, PARSE_ERROR ) std::string type; bool isVisible = true; aLayer->clear(); if( CurTok() != T_LEFT ) Expecting( T_LEFT ); Loading Loading @@ -744,13 +746,12 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR ) LSET visibleLayers; LSET enabledLayers; int copperLayerCount = 0; LAYER layer; std::vector<LAYER> cu; for( token = NextTok(); token != T_RIGHT; token = NextTok() ) { LAYER layer; parseLayer( &layer ); if( layer.m_type == LT_UNDEFINED ) // it's a non-copper layer Loading Loading @@ -794,15 +795,9 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR ) copperLayerCount = cu.size(); } if( token != T_RIGHT ) // process non-copper layers while( token != T_RIGHT ) { // read any non-copper layers for( token = NextTok(); token != T_RIGHT; token = NextTok() ) { LAYER layer; parseLayer( &layer ); LAYER_ID_MAP::const_iterator it = m_layerIndices.find( UTF8( layer.m_name ) ); if( it == m_layerIndices.end() ) Loading @@ -827,8 +822,14 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR ) // DBG( printf( "aux m_visible:%s\n", layer.m_visible ? "true" : "false" );) m_board->SetLayer( LAYER_ID( layer.m_number ), layer ); } m_board->SetLayer( it->second, layer ); token = NextTok(); if( token != T_LEFT ) break; parseLayer( &layer ); } // We need at least 2 copper layers and there must be an even number of them. Loading Loading
pcbnew/class_board.h +12 −5 Original line number Diff line number Diff line Loading @@ -89,11 +89,18 @@ enum LAYER_T */ struct LAYER { LAYER() : m_type( LT_SIGNAL ), m_visible( true ), m_number( 0 ) {} LAYER() { clear(); } void clear() { m_type = LT_SIGNAL; m_visible = true; m_number = 0; m_name.clear(); } /* LAYER( const wxString& aName = wxEmptyString, Loading
pcbnew/pcb_parser.cpp +28 −27 Original line number Diff line number Diff line Loading @@ -703,6 +703,8 @@ void PCB_PARSER::parseLayer( LAYER* aLayer ) throw( IO_ERROR, PARSE_ERROR ) std::string type; bool isVisible = true; aLayer->clear(); if( CurTok() != T_LEFT ) Expecting( T_LEFT ); Loading Loading @@ -744,13 +746,12 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR ) LSET visibleLayers; LSET enabledLayers; int copperLayerCount = 0; LAYER layer; std::vector<LAYER> cu; for( token = NextTok(); token != T_RIGHT; token = NextTok() ) { LAYER layer; parseLayer( &layer ); if( layer.m_type == LT_UNDEFINED ) // it's a non-copper layer Loading Loading @@ -794,15 +795,9 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR ) copperLayerCount = cu.size(); } if( token != T_RIGHT ) // process non-copper layers while( token != T_RIGHT ) { // read any non-copper layers for( token = NextTok(); token != T_RIGHT; token = NextTok() ) { LAYER layer; parseLayer( &layer ); LAYER_ID_MAP::const_iterator it = m_layerIndices.find( UTF8( layer.m_name ) ); if( it == m_layerIndices.end() ) Loading @@ -827,8 +822,14 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR ) // DBG( printf( "aux m_visible:%s\n", layer.m_visible ? "true" : "false" );) m_board->SetLayer( LAYER_ID( layer.m_number ), layer ); } m_board->SetLayer( it->second, layer ); token = NextTok(); if( token != T_LEFT ) break; parseLayer( &layer ); } // We need at least 2 copper layers and there must be an even number of them. Loading