kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #03272
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