Fix a bunch of compiler warnings

This commit is contained in:
qu1ck 2023-04-11 01:53:35 -07:00 committed by Mark Roszko
parent 6fb30398ca
commit 0c049eccc7
36 changed files with 77 additions and 112 deletions

View File

@ -52,7 +52,7 @@ bool ASSET_ARCHIVE::Load()
size_t offset = 0;
while( ( entry = tarStream.GetNextEntry() ) )
while( ( entry = tarStream.GetNextEntry() ) != nullptr )
{
if( entry->IsDir() )
{

View File

@ -321,7 +321,7 @@ int EDA_PATTERN_MATCH_RELATIONAL::FindOne( const wxString& aCandidate ) const
wxString val = m_regex_description.GetMatch( aCandidate, 2 );
wxString unit = m_regex_description.GetMatch( aCandidate, 3 );
int istart = ( start > std::numeric_limits<int>::max() ) ? std::numeric_limits<int>::max() : start;
int istart = static_cast<int>( CLAMPED_VAL_INT_MAX( start ) );
if( key.Lower() != m_key )
return EDA_PATTERN_NOT_FOUND;

View File

@ -53,7 +53,7 @@ static std::string strValue( double aValue )
else
{
double div = 1e3;
int unit = 'K';
char unit = 'K';
if( aValue >= 1e6 )
{

View File

@ -136,7 +136,7 @@ int SHADER::AddParameter( const std::string& aParameterName )
else
throw std::runtime_error( "Could not find shader uniform: " + aParameterName );
return parameterLocation.size() - 1;
return static_cast<int>( parameterLocation.size() ) - 1;
}
@ -254,7 +254,7 @@ bool SHADER::loadShaderFromStringArray( SHADER_TYPE aShaderType, const char** aA
programInfo( programNumber );
// Attach the sources
glShaderSource( shaderNumber, aSize, (const GLchar**) aArray, nullptr );
glShaderSource( shaderNumber, static_cast<GLsizei>( aSize ), (const GLchar**) aArray, nullptr );
programInfo( programNumber );
// Compile and attach shader to the program

View File

@ -75,7 +75,7 @@ wxString FindKicadFile( const wxString& shortname )
// kicad can be installed highly portably on Windows, anywhere and concurrently
// either the "kicad file" is immediately adjacent to the exe or it's not a valid install
return shortname;
#endif
#else
// Path list for KiCad binary files
const static wxChar* possibilities[] = {
@ -109,6 +109,8 @@ wxString FindKicadFile( const wxString& shortname )
}
return shortname;
#endif
}

View File

@ -526,7 +526,7 @@ bool checkHeaderHelper( INPUT_TYPE& aInput )
if( !parse<VALID_HEADER>( aInput ) )
return false;
}
catch( const parse_error& e )
catch( const parse_error& )
{
return false;
}

View File

@ -75,7 +75,7 @@ VECTOR2I ARC_GEOM_MANAGER::GetOrigin() const
VECTOR2I ARC_GEOM_MANAGER::GetStartRadiusEnd() const
{
VECTOR2I vec( m_radius, 0 );
VECTOR2I vec( static_cast<int>( m_radius ), 0 );
RotatePoint( vec, -m_startAngle );
return m_origin +vec;
}
@ -83,7 +83,7 @@ VECTOR2I ARC_GEOM_MANAGER::GetStartRadiusEnd() const
VECTOR2I ARC_GEOM_MANAGER::GetEndRadiusEnd() const
{
VECTOR2I vec( m_radius, 0 );
VECTOR2I vec( static_cast<int>( m_radius ), 0 );
RotatePoint( vec, -m_endAngle );
return m_origin + vec;
}

View File

@ -2696,19 +2696,16 @@ bool mpWindow::SaveScreenshot( const wxString& filename, wxBitmapType type, wxSi
bool fit )
{
int sizeX, sizeY;
int bk_scrX, bk_scrY;
if( imageSize == wxDefaultSize )
{
sizeX = m_scrX;
sizeY = m_scrY;
sizeX = m_scrX;
sizeY = m_scrY;
}
else
{
sizeX = imageSize.x;
sizeY = imageSize.y;
bk_scrX = m_scrX;
bk_scrY = m_scrY;
sizeX = imageSize.x;
sizeY = imageSize.y;
SetScr( sizeX, sizeY );
}
@ -2733,6 +2730,8 @@ bool mpWindow::SaveScreenshot( const wxString& filename, wxBitmapType type, wxSi
if( imageSize != wxDefaultSize )
{
// Restore dimensions
int bk_scrX = m_scrX;
int bk_scrY = m_scrY;
SetScr( bk_scrX, bk_scrY );
Fit( m_desiredXmin, m_desiredXmax, m_desiredYmin, m_desiredYmax, &bk_scrX, &bk_scrY );
UpdateAll();

View File

@ -439,7 +439,7 @@ bool WX_GRID::CancelPendingChanges()
wxGridCellAttr* attr = GetCellAttr( row, col );
wxGridCellEditor* editor = attr->GetEditor( this, row, col );
bool changed = editor->EndEdit( row, col, this, oldval, &newval );
editor->EndEdit( row, col, this, oldval, &newval );
editor->DecRef();
attr->DecRef();

View File

@ -112,7 +112,7 @@ void DIALOG_FP_CONFLICT_ASSIGNMENT_SELECTOR::OnItemClicked( wxMouseEvent& event
long idx = m_listFp->HitTest( pos, flgs );
// Try to find the column clicked (must be COL_SELCMP or COL_SELSCH)
int colclr = -1, colset;
int colclr = -1, colset = -1;
int minpx = m_listFp->GetColumnWidth( 0 ) + m_listFp->GetColumnWidth( 1 );
int maxpx = minpx + m_listFp->GetColumnWidth( 2 );

View File

@ -209,6 +209,3 @@ SCH_IO_MGR::SCH_FILE_T SCH_IO_MGR::GuessPluginTypeFromSchPath( const wxString& a
return ret;
}
DECLARE_ENUM_VECTOR( SCH_IO_MGR, SCH_FILE_T )

View File

@ -25,34 +25,23 @@
#include <sch_io_mgr.h>
#include <wx/translation.h>
#define FMT_UNIMPLEMENTED "Plugin \"%s\" does not implement the \"%s\" function."
/**
* Function not_implemented
* throws an IO_ERROR and complains of an API function not being implemented.
*
* @param aPlugin is a SCH_PLUGIN instance
* @param aCaller is the name of the unimplemented API function.
*/
static void not_implemented( const SCH_PLUGIN* aPlugin, const char* aCaller )
{
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED,
aPlugin->GetName().GetData(),
#define FMT_UNIMPLEMENTED wxT( "Plugin \"%s\" does not implement the \"%s\" function." )
#define NOT_IMPLEMENTED( aCaller ) \
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, \
GetName().GetData(), \
wxString::FromUTF8( aCaller ).GetData() ) );
}
void SCH_PLUGIN::SaveLibrary( const wxString& aFileName, const STRING_UTF8_MAP* aProperties )
{
not_implemented( this, __FUNCTION__ );
NOT_IMPLEMENTED( __FUNCTION__ );
}
SCH_SHEET* SCH_PLUGIN::Load( const wxString& aFileName, SCHEMATIC* aSchematic,
SCH_SHEET* aAppendToMe, const STRING_UTF8_MAP* aProperties )
{
not_implemented( this, __FUNCTION__ );
return nullptr;
NOT_IMPLEMENTED( __FUNCTION__ );
}
@ -60,7 +49,7 @@ void SCH_PLUGIN::Save( const wxString& aFileName, SCH_SHEET* aSheet, SCHEMATIC*
const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the SCH_PLUGIN interface.
not_implemented( this, __FUNCTION__ );
NOT_IMPLEMENTED( __FUNCTION__ );
}
@ -69,7 +58,7 @@ void SCH_PLUGIN::EnumerateSymbolLib( wxArrayString& aAliasNameList,
const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the SCH_PLUGIN interface.
not_implemented( this, __FUNCTION__ );
NOT_IMPLEMENTED( __FUNCTION__ );
}
@ -78,7 +67,7 @@ void SCH_PLUGIN::EnumerateSymbolLib( std::vector<LIB_SYMBOL*>& aSymbolList,
const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the SCH_PLUGIN interface.
not_implemented( this, __FUNCTION__ );
NOT_IMPLEMENTED( __FUNCTION__ );
}
@ -86,8 +75,7 @@ LIB_SYMBOL* SCH_PLUGIN::LoadSymbol( const wxString& aLibraryPath, const wxString
const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the SCH_PLUGIN interface.
not_implemented( this, __FUNCTION__ );
return nullptr;
NOT_IMPLEMENTED( __FUNCTION__ );
}
@ -95,7 +83,7 @@ void SCH_PLUGIN::SaveSymbol( const wxString& aLibraryPath, const LIB_SYMBOL* aSy
const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the SCH_PLUGIN interface.
not_implemented( this, __FUNCTION__ );
NOT_IMPLEMENTED( __FUNCTION__ );
}
@ -103,30 +91,28 @@ void SCH_PLUGIN::DeleteSymbol( const wxString& aLibraryPath, const wxString& aSy
const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the SCH_PLUGIN interface.
not_implemented( this, __FUNCTION__ );
NOT_IMPLEMENTED( __FUNCTION__ );
}
void SCH_PLUGIN::CreateSymbolLib( const wxString& aLibraryPath, const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the SCH_PLUGIN interface.
not_implemented( this, __FUNCTION__ );
NOT_IMPLEMENTED( __FUNCTION__ );
}
bool SCH_PLUGIN::DeleteSymbolLib( const wxString& aLibraryPath, const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the SCH_PLUGIN interface.
not_implemented( this, __FUNCTION__ );
return false;
NOT_IMPLEMENTED( __FUNCTION__ );
}
bool SCH_PLUGIN::IsSymbolLibWritable( const wxString& aLibraryPath )
{
// not pure virtual so that plugins only have to implement subset of the SCH_PLUGIN interface.
not_implemented( this, __FUNCTION__ );
return false;
NOT_IMPLEMENTED( __FUNCTION__ );
}
@ -169,15 +155,12 @@ void SCH_PLUGIN::SymbolLibOptions( STRING_UTF8_MAP* aListToAppendTo ) const
bool SCH_PLUGIN::CheckHeader( const wxString& aFileName )
{
// not pure virtual so that plugins only have to implement subset of the SCH_PLUGIN interface.
not_implemented( this, __FUNCTION__ );
return false;
NOT_IMPLEMENTED( __FUNCTION__ );
}
const wxString& SCH_PLUGIN::GetError() const
{
// not pure virtual so that plugins only have to implement subset of the SCH_PLUGIN interface.
not_implemented( this, __FUNCTION__ );
static wxString error;
return error;
NOT_IMPLEMENTED( __FUNCTION__ );
}

View File

@ -2658,7 +2658,7 @@ void CADSTAR_SCH_ARCHIVE_LOADER::loadItemOntoKiCadSheet( LAYER_ID aCadstarSheetI
if( aCadstarSheetID == "ALL_SHEETS" )
{
SCH_ITEM* duplicateItem;
SCH_ITEM* duplicateItem = nullptr;
for( std::pair<LAYER_ID, SHEET_NAME> sheetPair : Sheets.SheetNames )
{

View File

@ -1498,7 +1498,7 @@ std::vector<std::pair<int, double>> KIBIS_WAVEFORM_PRBS::GenerateBitSequence()
do
{
uint8_t lsb = lfsr & 0x01;
bitSequence.emplace_back( ( inverted ^ lsb ? 1 : 0 ), t );
bitSequence.emplace_back( ( static_cast<uint8_t>( inverted ) ^ lsb ? 1 : 0 ), t );
lfsr = lfsr >> 1;
if ( lsb )

View File

@ -447,7 +447,7 @@ std::unique_ptr<SIM_MODEL> SIM_MODEL::Create( TYPE aType, const std::vector<LIB_
// Passing nullptr to ReadDataFields will make it act as if all fields were empty.
model->ReadDataFields( static_cast<const std::vector<SCH_FIELD>*>( nullptr ), aPins );
}
catch( IO_ERROR& err )
catch( IO_ERROR& )
{
wxFAIL_MSG( "Shouldn't throw reading empty fields!" );
}
@ -484,7 +484,7 @@ std::unique_ptr<SIM_MODEL> SIM_MODEL::Create( const SIM_MODEL* aBaseModel,
{
model->ReadDataFields( static_cast<const std::vector<SCH_FIELD>*>( nullptr ), aPins );
}
catch( IO_ERROR& err )
catch( IO_ERROR& )
{
wxFAIL_MSG( "Shouldn't throw reading empty fields!" );
}

View File

@ -557,7 +557,7 @@ void SIM_PLOT_PANEL::prepareDCAxes( int aNewTraceType )
if( sim_cmd.StartsWith( ".dc", &rem ) )
{
wxChar ch;
wxChar ch = 0;
rem.Trim( false );

View File

@ -1364,7 +1364,7 @@ int SCH_DRAWING_TOOLS::TwoClickPlace( const TOOL_EVENT& aEvent )
}
else if( isSheetPin )
{
EDA_ITEM* i;
EDA_ITEM* i = nullptr;
// If we didn't have a sheet selected, try to find one under the cursor
if( !sheet && m_selectionTool->SelectPoint( cursorPos, { SCH_SHEET_T }, &i ) )

View File

@ -461,7 +461,7 @@ bool GERBVIEW_FRAME::unarchiveFiles( const wxString& aFullFileName, REPORTER* aR
bool reported_no_more_layer = false;
KIGFX::VIEW* view = GetCanvas()->GetView();
while( ( entry = zipArchive.GetNextEntry() ) )
while( ( entry = zipArchive.GetNextEntry() ) != nullptr )
{
if( entry->IsDir() )
continue;

View File

@ -195,7 +195,7 @@ void IFACE::SaveFileAs( const wxString& aProjectBasePath, const wxString& aProje
char* line;
wxString data;
while( ( line = jobfileReader.ReadLine() ) )
while( ( line = jobfileReader.ReadLine() ) != nullptr )
data << line << '\n';
// detect the file format: old (deprecated) gerber format or official JSON format

View File

@ -132,7 +132,7 @@ bool GERBER_JOBFILE_READER::ReadGerberJobFile()
if( json_format )
{
while( ( line = jobfileReader.ReadLine() ) )
while( ( line = jobfileReader.ReadLine() ) != nullptr )
data << '\n' << line;
try

View File

@ -967,7 +967,6 @@ char* GERBER_FILE_IMAGE::GetNextLine( char *aBuff, unsigned int aBuffSize, char*
return aText;
}
}
return aText;
}

View File

@ -128,8 +128,8 @@ void TransformEllipseToBeziers( const ELLIPSE<T>& aEllipse, std::vector<BEZIER<T
const int minBeziersPerCircle = 4;
/// The number of Beziers needed for the given arc
const int numBeziers = std::ceil( std::abs( arcAngle.AsRadians() /
( 2 * M_PI / minBeziersPerCircle ) ) );
const int numBeziers = static_cast<int>(
std::ceil( std::abs( arcAngle.AsRadians() / ( 2 * M_PI / minBeziersPerCircle ) ) ) );
/// Angle occupied by each Bezier
const double angleIncrement = arcAngle.AsRadians() / numBeziers;

View File

@ -34,8 +34,8 @@ EDA_ANGLE EDA_ANGLE::KeepUpright() const
EDA_ANGLE inAngle( *this );
inAngle.Normalize();
int inDegrees = inAngle.AsDegrees();
int outDegrees;
double inDegrees = inAngle.AsDegrees();
double outDegrees;
if( inDegrees <= 45 || inDegrees >= 315 || ( inDegrees > 135 && inDegrees <= 225 ) )
outDegrees = 0;

View File

@ -354,7 +354,7 @@ int SEG::LineDistance( const VECTOR2I& aP, bool aDetermineSide ) const
ecoord dist = isqrt( dist_sq );
return aDetermineSide ? dist : std::abs( dist );
return static_cast<int>( aDetermineSide ? dist : std::abs( dist ) );
}

View File

@ -1478,8 +1478,6 @@ static inline void addIntersection( SHAPE_LINE_CHAIN::INTERSECTIONS& aIps, int a
return;
}
const auto& last = aIps.back();
aIps.push_back( aP );
}

View File

@ -137,7 +137,7 @@ public:
Vertex* match = nullptr;
// Only run the expensive search if we don't already have a match for the point
if( ( all_hits.empty() || all_hits.count( p ) == 0 ) && ( match = getKink( p ) ) )
if( ( all_hits.empty() || all_hits.count( p ) == 0 ) && ( match = getKink( p ) ) != nullptr )
{
if( !all_hits.count( match ) && m_hits.emplace( p->i, match->i ).second )
{

View File

@ -641,8 +641,8 @@ bool DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem( PAD* pad, SHAPE* pa
std::shared_ptr<SHAPE> otherShape = other->GetEffectiveShape( aLayer );
DRC_CONSTRAINT constraint;
int clearance;
int actual;
int clearance = 0;
int actual = 0;
VECTOR2I pos;
if( otherPad && pad->SameLogicalPadAs( otherPad ) )

View File

@ -131,7 +131,7 @@ void DRC_TEST_PROVIDER_HOLE_SIZE::checkPadHole( PAD* aPad )
UNDEFINED_LAYER /* holes are not layer-specific */ );
bool fail_min = false;
bool fail_max = false;
int constraintValue;
int constraintValue = 0;
if( constraint.GetSeverity() == RPT_SEVERITY_IGNORE )
return;
@ -200,7 +200,7 @@ void DRC_TEST_PROVIDER_HOLE_SIZE::checkViaHole( PCB_VIA* via, bool aExceedMicro,
UNDEFINED_LAYER /* holes are not layer-specific */ );
bool fail_min = false;
bool fail_max = false;
int constraintValue;
int constraintValue = 0;
if( constraint.GetSeverity() == RPT_SEVERITY_IGNORE )
return;

View File

@ -104,7 +104,7 @@ bool DRC_TEST_PROVIDER_TRACK_WIDTH::Run()
item->GetLayer() );
bool fail_min = false;
bool fail_max = false;
int constraintWidth;
int constraintWidth = 0;
if( constraint.GetSeverity() != RPT_SEVERITY_IGNORE )
{

View File

@ -407,7 +407,7 @@ bool FOOTPRINT_EDITOR_SETTINGS::MigrateFromLegacy( wxConfigBase* aCfg )
( *m_internals )[m_internals->PointerFromString( "appearance.color_theme" )] = "user_footprints";
double x, y;
double x = 0, y = 0;
f = "ModEditFrame";
if( aCfg->Read( f + "PcbUserGrid_X", &x ) && aCfg->Read( f + "PcbUserGrid_Y", &y ) )

View File

@ -175,7 +175,7 @@ void PCB_EDIT_FRAME::LoadFootprints( NETLIST& aNetlist, REPORTER& aReporter )
KIID_PATH path = component->GetPath();
path.push_back( uuid );
if( ( fpOnBoard = m_pcb->FindFootprintByPath( path ) ) )
if( ( fpOnBoard = m_pcb->FindFootprintByPath( path ) ) != nullptr )
break;
}
}

View File

@ -889,7 +889,7 @@ bool PCBNEW_SETTINGS::MigrateFromLegacy( wxConfigBase* aCfg )
Set( "appearance.color_theme", cs->GetFilename() );
double x, y;
double x = 0, y = 0;
if( aCfg->Read( f + "PcbUserGrid_X", &x ) && aCfg->Read( f + "PcbUserGrid_Y", &y ) )
{

View File

@ -27,40 +27,30 @@
#include <wx/translation.h>
#define FMT_UNIMPLEMENTED wxT( "Plugin \"%s\" does not implement the \"%s\" function." )
/**
* Throw an #IO_ERROR and complains of an API function not being implemented.
*
* @param aPlugin is a #PLUGIN instance.
* @param aCaller is the name of the unimplemented API function.
*/
static void not_implemented( PLUGIN* aPlugin, const char* aCaller )
{
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED,
aPlugin->PluginName(),
#define FMT_UNIMPLEMENTED wxT( "Plugin \"%s\" does not implement the \"%s\" function." )
#define NOT_IMPLEMENTED( aCaller ) \
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, \
PluginName(), \
wxString::FromUTF8( aCaller ) ) );
}
BOARD* PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, const STRING_UTF8_MAP* aProperties,
PROJECT* aProject, PROGRESS_REPORTER* aProgressReporter )
{
not_implemented( this, __FUNCTION__ );
return nullptr;
NOT_IMPLEMENTED( __FUNCTION__ );
}
std::vector<FOOTPRINT*> PLUGIN::GetImportedCachedLibraryFootprints()
{
not_implemented( this, __FUNCTION__ );
return std::vector<FOOTPRINT*>();
NOT_IMPLEMENTED( __FUNCTION__ );
}
void PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
not_implemented( this, __FUNCTION__ );
NOT_IMPLEMENTED( __FUNCTION__ );
}
@ -68,7 +58,7 @@ void PLUGIN::FootprintEnumerate( wxArrayString& aFootprintNames, const wxString&
bool aBestEfforts, const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
not_implemented( this, __FUNCTION__ );
NOT_IMPLEMENTED( __FUNCTION__ );
}
@ -98,8 +88,7 @@ FOOTPRINT* PLUGIN::FootprintLoad( const wxString& aLibraryPath, const wxString&
bool aKeepUUID, const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
not_implemented( this, __FUNCTION__ );
return nullptr;
NOT_IMPLEMENTED( __FUNCTION__ );
}
@ -107,7 +96,7 @@ void PLUGIN::FootprintSave( const wxString& aLibraryPath, const FOOTPRINT* aFoot
const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
not_implemented( this, __FUNCTION__ );
NOT_IMPLEMENTED( __FUNCTION__ );
}
@ -115,30 +104,28 @@ void PLUGIN::FootprintDelete( const wxString& aLibraryPath, const wxString& aFoo
const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
not_implemented( this, __FUNCTION__ );
NOT_IMPLEMENTED( __FUNCTION__ );
}
void PLUGIN::FootprintLibCreate( const wxString& aLibraryPath, const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
not_implemented( this, __FUNCTION__ );
NOT_IMPLEMENTED( __FUNCTION__ );
}
bool PLUGIN::FootprintLibDelete( const wxString& aLibraryPath, const STRING_UTF8_MAP* aProperties )
{
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
not_implemented( this, __FUNCTION__ );
return false;
NOT_IMPLEMENTED( __FUNCTION__ );
}
bool PLUGIN::IsFootprintLibWritable( const wxString& aLibraryPath )
{
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
not_implemented( this, __FUNCTION__ );
return false;
NOT_IMPLEMENTED( __FUNCTION__ );
}

View File

@ -93,7 +93,7 @@ bool WRL2INLINE::Read( WRLPROC& proc, WRL2BASE* aTopNode )
proc.Pop();
while( ( tok = proc.Peek() ) )
while( ( tok = proc.Peek() ) != 0 )
{
std::string glob;

View File

@ -40,7 +40,7 @@ int main( int argc, char **argv )
string dname; // DXF filename
string gname; // Geometry Name
string pname; // Part Name
double height; // extrusion height
double height = 0; // extrusion height
bool inch = false; // true = inches, false = mm
bool ok;

View File

@ -759,7 +759,7 @@ bool MakeComponents( IDF3_BOARD& board, std::ostream& file, bool compact )
tY += vY;
tA += vA;
if( ( pout = (IDF3_COMP_OUTLINE*)((*so)->GetOutline()) ) )
if( ( pout = (IDF3_COMP_OUTLINE*)((*so)->GetOutline()) ) != nullptr )
{
vcp = GetColor( cmap, cidx, pout->GetUID() );
}