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

Pcbnew IDF and VRML exporter Coverity scan error fixes.

parent 1acfbb0d
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -185,7 +185,11 @@ public:
        colors[ VRML_COLOR_TIN ]    = VRML_COLOR( .749, .756, .761, .749, .756, .761,
                                                  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 )
@@ -889,11 +893,11 @@ static void export_vrml_zones( MODEL_VRML& aModel, BOARD* aPcb )
        const CPOLYGONS_LIST& poly = zone->GetFilledPolysList();
        int nvert = poly.GetCornersCount();
        int i = 0;
        bool cutout = false;

        while( i < nvert )
        {
            int seg = vl->NewContour();
            bool first = true;

            if( seg < 0 )
                break;
@@ -914,10 +918,10 @@ static void export_vrml_zones( MODEL_VRML& aModel, BOARD* aPcb )

            // KiCad ensures that the first polygon is the outline
            // and all others are holes
             vl->EnsureWinding( seg, first ? false : true );
             vl->EnsureWinding( seg, cutout );

            if( first )
                first = false;
             if( !cutout )
                 cutout = true;

            ++i;
        }
+9 −0
Original line number Diff line number Diff line
@@ -2425,12 +2425,18 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib
        while( !FetchIDFLine( aLibFile, iline, isComment, pos ) && aLibFile.good() );

        if( !aLibFile.good() && !aLibFile.eof() )
        {
            delete pout;
            throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__,
                              "problems reading library section" ) );
        }

        // no data was read; this only happens at eof()
        if( iline.empty() )
        {
            delete pout;
            return;
        }

        if( isComment )
        {
@@ -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 << "* line: '" << iline << "'\n";
            ostr << "* pos: " << pos;
            delete pout;

            throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__, ostr.str() ) );
        }
@@ -2509,6 +2516,8 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib
        }
    }

    delete pout;

    if( !aLibFile.eof() )
        throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__,
                          "problems reading IDF library file" ) );