Fixed eeschema crash when reading a void library file

This commit is contained in:
jean-pierre charras 2010-05-08 12:54:41 +02:00
parent f54d342459
commit 31406023ed
3 changed files with 15 additions and 8 deletions

View File

@ -175,6 +175,17 @@ CMP_LIB_ENTRY* CMP_LIBRARY::FindEntry( const wxChar* aName, LibrEntryType aType
return NULL; return NULL;
} }
/**
* Return the first entry in the library.
* @return The first entry or NULL if the library has no entries.
*/
CMP_LIB_ENTRY* CMP_LIBRARY::GetFirstEntry()
{
if( entries.size() )
return &entries.front();
else
return NULL;
}
LIB_COMPONENT* CMP_LIBRARY::FindComponent( const wxChar* aName ) LIB_COMPONENT* CMP_LIBRARY::FindComponent( const wxChar* aName )
{ {

View File

@ -317,10 +317,7 @@ public:
* *
* @return The first entry or NULL if the library has no entries. * @return The first entry or NULL if the library has no entries.
*/ */
CMP_LIB_ENTRY* GetFirstEntry() CMP_LIB_ENTRY* GetFirstEntry();
{
return &entries.front();
}
/** /**
* Find next library entry by /a aName. * Find next library entry by /a aName.

View File

@ -706,7 +706,7 @@ static int ConvertBusToMembers( NETLIST_OBJECT_LIST& aNetItemBuffer,
else else
BusLabel.m_Type = NET_BUSLABELMEMBER; BusLabel.m_Type = NET_BUSLABELMEMBER;
/* Conversion of BusLabel in the root of the Label + the number of wire. */ /* Conversion of BusLabel to the root Label name + the member id like mybus0, mybus1 ... */
BufLine = BusLabel.m_Label->Left( RootBusNameLength ); BufLine = BusLabel.m_Label->Left( RootBusNameLength );
BusMember = FirstNumWireBus; BusMember = FirstNumWireBus;
@ -721,8 +721,7 @@ static int ConvertBusToMembers( NETLIST_OBJECT_LIST& aNetItemBuffer,
NETLIST_OBJECT* new_label = new NETLIST_OBJECT( BusLabel ); NETLIST_OBJECT* new_label = new NETLIST_OBJECT( BusLabel );
NumItem++; NumItem++;
/* Conversion of BusLabel in the root of the Label + the number /* Conversion of BusLabel to the root name + the current member id.*/
* of wire */
BufLine = BusLabel.m_Label->Left( RootBusNameLength ); BufLine = BusLabel.m_Label->Left( RootBusNameLength );
BufLine << BusMember; BufLine << BusMember;
new_label->m_Label = new wxString( BufLine ); new_label->m_Label = new wxString( BufLine );
@ -739,7 +738,7 @@ static int ConvertBusToMembers( NETLIST_OBJECT_LIST& aNetItemBuffer,
* PropageNetCode propagates Netcode NewNetCode on all elements * PropageNetCode propagates Netcode NewNetCode on all elements
* belonging to the former Netcode OldNetCode * belonging to the former Netcode OldNetCode
* If IsBus == 0; Netcode is the member who is spreading * If IsBus == 0; Netcode is the member who is spreading
* If IsBus! = 0; is the member who is spreading BusNetCode * If IsBus != 0; is the member who is spreading BusNetCode
*/ */
static void PropageNetCode( int OldNetCode, int NewNetCode, int IsBus ) static void PropageNetCode( int OldNetCode, int NewNetCode, int IsBus )
{ {