From d21ced6288dc0475b0c94b28abd4c386aa54cc47 Mon Sep 17 00:00:00 2001 From: dickelbeck Date: Mon, 17 Aug 2009 12:11:09 +0000 Subject: [PATCH] no point in removing from netclass incrementally since an entire list rebuild is done below --- pcbnew/class_netclass.cpp | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/pcbnew/class_netclass.cpp b/pcbnew/class_netclass.cpp index 0d09bf74df..3f44e95c5f 100644 --- a/pcbnew/class_netclass.cpp +++ b/pcbnew/class_netclass.cpp @@ -163,12 +163,13 @@ void BOARD::SynchronizeNetsAndNetClasses() } // Add netclass name and pointer to nets. If a net is in more than one netclass, - // remove it from all but the first netclass in which it resides. + // set the net's name and pointer to only the first netclass. Subsequent + // and therefore bogus netclass memberships will be deleted in logic below this loop. for( NETCLASSES::iterator clazz=m_NetClasses.begin(); clazz!=m_NetClasses.end(); ++clazz ) { NETCLASS* netclass = clazz->second; - for( NETCLASS::iterator member = netclass->begin(); member!=netclass->end(); ) + for( NETCLASS::iterator member = netclass->begin(); member!=netclass->end(); ++member ) { const wxString& netname = *member; @@ -177,22 +178,9 @@ void BOARD::SynchronizeNetsAndNetClasses() // think is a sequential search. NETINFO_ITEM* net = FindNet( netname ); - if( !net ) // NET 'netname' does not exist, remove it from 'netclass' - { - NETCLASS::iterator e = member++; - netclass->Remove( e ); - } - else if( net->GetClassName() != NETCLASS::Default ) - { - // 'net' is already in a non-default net class. This makes its - // entry in 'netclass' bogus, delete it. - NETCLASS::iterator e = member++; - netclass->Remove( e ); - } - else + if( net && net->GetClassName() == NETCLASS::Default ) { net->SetClass( netclass ); - ++member; } } }