← Back to team overview

kicad-developers team mailing list archive

Re: Regression in eeschema

 


> This is just a preliminary analysis skimming the source, if someone has comments or suggestions on how to proceed it could be useful.

Quick update: logging in RebuildEndList shown that pins are not being addedto the list... in particular in this fragment (about line 400):

Entry = CMP_LIBRARY::FindLibraryComponent( STRUCT->m_ChipName );

if( Entry == NULL)
break;
wxLogDebug(wxT("Item %p has pins?"), DrawItem);
for( LibDrawPin* Pin = Entry->GetNextPin(); Pin != NULL;
Pin = Entry->GetNextPin( Pin ) ) {
wxLogDebug(wxT("Item %p has a pin"), DrawItem);
wxASSERT( Pin->Type() == COMPONENT_PIN_DRAW_TYPE );
/* Loop body */    

... I can see the 'has pins?' message (so there is the Entry) but NO 'has apin' ones; GetNextPin() seems to be the culprit. That would explain why even the netlist is broken (a grep shows that function actually being used only in pinedit (massively) and in the locate/netlist related functions).

GetNextPin is actually a wrapper for GetNextDrawItem... THAT uses a STL/BOOST container (m_Drawing). Now I'm too hungry to get how it works, anyway:D








Follow ups

References