From f2338d9faa4e4487c7aaaaf21bd14c7f4b83f49a Mon Sep 17 00:00:00 2001 From: Tomasz Wlostowski Date: Wed, 26 Aug 2020 23:57:32 +0200 Subject: [PATCH] router: fix segfault with NPTH holes in COMPONENT_DRAGGER --- pcbnew/router/pns_component_dragger.cpp | 3 +++ pcbnew/router/pns_node.cpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/pcbnew/router/pns_component_dragger.cpp b/pcbnew/router/pns_component_dragger.cpp index 5aa3d21b45..e8f8673c60 100644 --- a/pcbnew/router/pns_component_dragger.cpp +++ b/pcbnew/router/pns_component_dragger.cpp @@ -55,6 +55,9 @@ bool COMPONENT_DRAGGER::Start( const VECTOR2I& aP, ITEM_SET& aPrimitives ) if( item.item->Kind() != ITEM::SOLID_T ) continue; + if( ! item.item->IsRoutable() ) + continue; + auto solid = static_cast( item.item ); auto jt = m_world->FindJoint( solid->Pos(), solid ); diff --git a/pcbnew/router/pns_node.cpp b/pcbnew/router/pns_node.cpp index 1d16c12ded..6a9f79509e 100644 --- a/pcbnew/router/pns_node.cpp +++ b/pcbnew/router/pns_node.cpp @@ -757,6 +757,9 @@ void NODE::removeViaIndex( VIA* aVia ) void NODE::removeSolidIndex( SOLID* aSolid ) { + if( !aSolid->IsRoutable() ) + return; + // fixme: redundant code JOINT* jt = FindJoint( aSolid->Pos(), aSolid->Layers().Start(), aSolid->Net() ); assert( jt );