Commit dcdaee4c authored by Cirilo Bernardo's avatar Cirilo Bernardo Committed by Wayne Stambaugh

Pcbnew IDF and VRML exporter Coverity scan error fixes.

parent 1acfbb0d
...@@ -185,7 +185,11 @@ public: ...@@ -185,7 +185,11 @@ public:
colors[ VRML_COLOR_TIN ] = VRML_COLOR( .749, .756, .761, .749, .756, .761, colors[ VRML_COLOR_TIN ] = VRML_COLOR( .749, .756, .761, .749, .756, .761,
0, 0, 0, 0.8, 0, 0.8 ); 0, 0, 0, 0.8, 0, 0.8 );
precision = 5; plainPCB = false;
SetScale( 1.0 );
SetOffset( 0.0, 0.0 );
s_text_layer = F_Cu;
s_text_width = 1;
} }
VRML_COLOR& GetColor( VRML_COLOR_INDEX aIndex ) VRML_COLOR& GetColor( VRML_COLOR_INDEX aIndex )
...@@ -889,11 +893,11 @@ static void export_vrml_zones( MODEL_VRML& aModel, BOARD* aPcb ) ...@@ -889,11 +893,11 @@ static void export_vrml_zones( MODEL_VRML& aModel, BOARD* aPcb )
const CPOLYGONS_LIST& poly = zone->GetFilledPolysList(); const CPOLYGONS_LIST& poly = zone->GetFilledPolysList();
int nvert = poly.GetCornersCount(); int nvert = poly.GetCornersCount();
int i = 0; int i = 0;
bool cutout = false;
while( i < nvert ) while( i < nvert )
{ {
int seg = vl->NewContour(); int seg = vl->NewContour();
bool first = true;
if( seg < 0 ) if( seg < 0 )
break; break;
...@@ -914,10 +918,10 @@ static void export_vrml_zones( MODEL_VRML& aModel, BOARD* aPcb ) ...@@ -914,10 +918,10 @@ static void export_vrml_zones( MODEL_VRML& aModel, BOARD* aPcb )
// KiCad ensures that the first polygon is the outline // KiCad ensures that the first polygon is the outline
// and all others are holes // and all others are holes
vl->EnsureWinding( seg, first ? false : true ); vl->EnsureWinding( seg, cutout );
if( first ) if( !cutout )
first = false; cutout = true;
++i; ++i;
} }
......
...@@ -2425,12 +2425,18 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib ...@@ -2425,12 +2425,18 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib
while( !FetchIDFLine( aLibFile, iline, isComment, pos ) && aLibFile.good() ); while( !FetchIDFLine( aLibFile, iline, isComment, pos ) && aLibFile.good() );
if( !aLibFile.good() && !aLibFile.eof() ) if( !aLibFile.good() && !aLibFile.eof() )
{
delete pout;
throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__, throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__,
"problems reading library section" ) ); "problems reading library section" ) );
}
// no data was read; this only happens at eof() // no data was read; this only happens at eof()
if( iline.empty() ) if( iline.empty() )
{
delete pout;
return; return;
}
if( isComment ) if( isComment )
{ {
...@@ -2448,6 +2454,7 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib ...@@ -2448,6 +2454,7 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib
ostr << "* Violation of specification: quoted string where .ELECTRICAL or .MECHANICAL expected\n"; ostr << "* Violation of specification: quoted string where .ELECTRICAL or .MECHANICAL expected\n";
ostr << "* line: '" << iline << "'\n"; ostr << "* line: '" << iline << "'\n";
ostr << "* pos: " << pos; ostr << "* pos: " << pos;
delete pout;
throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__, ostr.str() ) ); throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__, ostr.str() ) );
} }
...@@ -2509,6 +2516,8 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib ...@@ -2509,6 +2516,8 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib
} }
} }
delete pout;
if( !aLibFile.eof() ) if( !aLibFile.eof() )
throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__, throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__,
"problems reading IDF library file" ) ); "problems reading IDF library file" ) );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment