Pcbnew: fix Bug #1413701 (Segfault on highlight "unconnected" net 0 in Pcbnew ). Also, remove now useless code and other very minor fixes.
This commit is contained in:
parent
ca065833ea
commit
f0a52644ea
|
@ -88,8 +88,7 @@ void VRML2_MODEL_PARSER::Load( const wxString& aFilename, double aVrmlunits_to_3
|
|||
|
||||
glScalef( matScale.x, matScale.y, matScale.z );
|
||||
|
||||
// Switch the locale to standard C (needed to print floating point numbers like 1.3)
|
||||
SetLocaleTo_C_standard();
|
||||
LOCALE_IO toggle; // Temporary switch the locale to standard C to r/w floats
|
||||
|
||||
childs.clear();
|
||||
|
||||
|
@ -117,7 +116,6 @@ void VRML2_MODEL_PARSER::Load( const wxString& aFilename, double aVrmlunits_to_3
|
|||
}
|
||||
|
||||
fclose( m_file );
|
||||
SetLocaleTo_Default(); // revert to the current locale
|
||||
|
||||
|
||||
// DBG( printf( "chils size:%lu\n", childs.size() ) );
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
#include <layers_id_colors_and_visibility.h>
|
||||
#include <potracelib.h>
|
||||
#include <auxiliary.h>
|
||||
#include <common.h>
|
||||
|
||||
#include <bitmap2component.h>
|
||||
|
||||
|
@ -437,7 +438,7 @@ void BITMAPCONV_INFO::CreateOutputFile( BMP2CMP_MOD_LAYER aModLayer )
|
|||
|
||||
potrace_dpoint_t( *c )[3];
|
||||
|
||||
setlocale( LC_NUMERIC, "C" ); // Switch the locale to standard C
|
||||
LOCALE_IO toggle; // Temporary switch the locale to standard C to r/w floats
|
||||
|
||||
// The layer name has meaning only for .kicad_mod files.
|
||||
// For these files the header creates 2 invisible texts: value and ref
|
||||
|
@ -530,8 +531,6 @@ void BITMAPCONV_INFO::CreateOutputFile( BMP2CMP_MOD_LAYER aModLayer )
|
|||
}
|
||||
|
||||
OuputFileEnd();
|
||||
|
||||
setlocale( LC_NUMERIC, "" ); // revert to the current locale
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ void GRID_TRICKS::getSelectedArea()
|
|||
wxArrayInt cols = m_grid->GetSelectedCols();
|
||||
wxArrayInt rows = m_grid->GetSelectedRows();
|
||||
|
||||
DBG(printf("topLeft.Count():%zd botRight:Count():%zd\n", topLeft.Count(), botRight.Count() );)
|
||||
DBG(printf("topLeft.Count():%d botRight:Count():%d\n", int( topLeft.Count() ), int( botRight.Count() ) );)
|
||||
|
||||
if( topLeft.Count() && botRight.Count() )
|
||||
{
|
||||
|
|
|
@ -269,11 +269,6 @@ void GERBVIEW_FRAME::LoadSettings( wxConfigBase* aCfg )
|
|||
aCfg->SetPath( wxT( "drl_files" ) );
|
||||
m_drillFileHistory.Load( *aCfg );
|
||||
aCfg->SetPath( wxT( ".." ) );
|
||||
|
||||
// WxWidgets 2.9.1 seems call setlocale( LC_NUMERIC, "" )
|
||||
// when reading doubles in config,
|
||||
// but forget to back to current locale. So we call SetLocaleTo_Default
|
||||
SetLocaleTo_Default();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -767,11 +767,6 @@ void PCB_BASE_FRAME::LoadSettings( wxConfigBase* aCfg )
|
|||
|
||||
if( m_DisplayOptions.m_DisplayModText < LINE || m_DisplayOptions.m_DisplayModText > SKETCH )
|
||||
m_DisplayOptions.m_DisplayModText = FILLED;
|
||||
|
||||
// WxWidgets 2.9.1 seems call setlocale( LC_NUMERIC, "" )
|
||||
// when reading doubles in config,
|
||||
// but forget to back to current locale. So we call SetLocaleTo_Default
|
||||
SetLocaleTo_Default( );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1212,10 +1212,12 @@ SEARCH_RESULT BOARD::Visit( INSPECTOR* inspector, const void* testData,
|
|||
NETINFO_ITEM* BOARD::FindNet( int aNetcode ) const
|
||||
{
|
||||
// the first valid netcode is 1 and the last is m_NetInfo.GetCount()-1.
|
||||
// zero is reserved for "no connection" and is not used.
|
||||
// zero is reserved for "no connection" and is not actually a net.
|
||||
// NULL is returned for non valid netcodes
|
||||
|
||||
if( aNetcode == NETINFO_LIST::UNCONNECTED )
|
||||
wxASSERT( m_NetInfo.GetNetCount() > 0 ); // net zero should exist
|
||||
|
||||
if( aNetcode == NETINFO_LIST::UNCONNECTED && m_NetInfo.GetNetCount() == 0 )
|
||||
return &NETINFO_LIST::ORPHANED;
|
||||
else
|
||||
return m_NetInfo.GetNetItem( aNetcode );
|
||||
|
|
|
@ -80,10 +80,7 @@ void NETINFO_ITEM::Draw( EDA_DRAW_PANEL* panel,
|
|||
|
||||
void NETINFO_ITEM::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList )
|
||||
{
|
||||
int count;
|
||||
wxString txt;
|
||||
MODULE* module;
|
||||
D_PAD* pad;
|
||||
double lengthnet = 0.0; // This is the lenght of tracks on pcb
|
||||
double lengthPadToDie = 0.0; // this is the lenght of internal ICs connections
|
||||
|
||||
|
@ -92,12 +89,17 @@ void NETINFO_ITEM::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList )
|
|||
txt.Printf( wxT( "%d" ), GetNet() );
|
||||
aList.push_back( MSG_PANEL_ITEM( _( "Net Code" ), txt, RED ) );
|
||||
|
||||
count = 0;
|
||||
module = m_parent->GetBoard()->m_Modules;
|
||||
// Warning: for netcode == NETINFO_LIST::ORPHANED, the parent or the board
|
||||
// can be NULL
|
||||
BOARD * board = m_parent ? m_parent->GetBoard() : NULL;
|
||||
|
||||
for( ; module != 0; module = module->Next() )
|
||||
if( board == NULL )
|
||||
return;
|
||||
|
||||
int count = 0;
|
||||
for( MODULE* module = board->m_Modules; module != NULL; module = module->Next() )
|
||||
{
|
||||
for( pad = module->Pads(); pad != 0; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->Pads(); pad != 0; pad = pad->Next() )
|
||||
{
|
||||
if( pad->GetNetCode() == GetNet() )
|
||||
{
|
||||
|
@ -112,7 +114,7 @@ void NETINFO_ITEM::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList )
|
|||
|
||||
count = 0;
|
||||
|
||||
for( const TRACK *track = m_parent->GetBoard()->m_Track; track != NULL; track = track->Next() )
|
||||
for( const TRACK *track = board->m_Track; track != NULL; track = track->Next() )
|
||||
{
|
||||
if( track->Type() == PCB_VIA_T )
|
||||
{
|
||||
|
|
|
@ -754,11 +754,6 @@ void PCB_EDIT_FRAME::LoadSettings( wxConfigBase* aCfg )
|
|||
aCfg->Read( PCB_MAGNETIC_TRACKS_OPT, &g_MagneticTrackOption );
|
||||
aCfg->Read( SHOW_MICROWAVE_TOOLS, &m_show_microwave_tools );
|
||||
aCfg->Read( SHOW_LAYER_MANAGER_TOOLS, &m_show_layer_manager_tools );
|
||||
|
||||
// WxWidgets 2.9.1 seems call setlocale( LC_NUMERIC, "" )
|
||||
// when reading doubles in cfg,
|
||||
// but forget to back to current locale. So we call SetLocaleTo_Default
|
||||
SetLocaleTo_Default( );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ int main( int argc, char** argv )
|
|||
SPECCTRA_DB db;
|
||||
bool failed = false;
|
||||
|
||||
SetLocaleTo_C_standard( ); // Switch the locale to standard C
|
||||
LOCALE_IO toggle; // Temporary switch the locale to standard C to r/w floats
|
||||
|
||||
if( argc == 2 )
|
||||
{
|
||||
|
@ -87,8 +87,6 @@ int main( int argc, char** argv )
|
|||
DSN::SESSION* ses = db.GetSESSION();
|
||||
ses->Format( &db, 0 );
|
||||
#endif
|
||||
|
||||
SetLocaleTo_Default( ); // revert to the current locale
|
||||
}
|
||||
|
||||
//-----<dummy code>---------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue