Fix crash when moving non-connected
Non connected items do not have netcodes, so shouldn't be included in the calculation for ratsnest
This commit is contained in:
parent
2078e629c5
commit
4c5f3cb5be
|
@ -625,11 +625,14 @@ const std::vector<CN_EDGE> CONNECTIVITY_DATA::GetRatsnestForItems( std::vector<B
|
||||||
{
|
{
|
||||||
std::set<int> nets;
|
std::set<int> nets;
|
||||||
std::vector<CN_EDGE> edges;
|
std::vector<CN_EDGE> edges;
|
||||||
std::set<BOARD_ITEM*> item_set( aItems.begin(), aItems.end() );
|
std::set<BOARD_CONNECTED_ITEM*> item_set;
|
||||||
|
|
||||||
for( auto item : aItems )
|
for( auto item : aItems )
|
||||||
{
|
{
|
||||||
auto conn_item = static_cast<BOARD_CONNECTED_ITEM*>( item );
|
auto conn_item = dyn_cast<BOARD_CONNECTED_ITEM*>( item );
|
||||||
|
|
||||||
|
if( !conn_item )
|
||||||
|
continue;
|
||||||
|
|
||||||
if( item->Type() == PCB_MODULE_T )
|
if( item->Type() == PCB_MODULE_T )
|
||||||
{
|
{
|
||||||
|
@ -643,6 +646,7 @@ const std::vector<CN_EDGE> CONNECTIVITY_DATA::GetRatsnestForItems( std::vector<B
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
item_set.insert( conn_item );
|
||||||
nets.insert( conn_item->GetNetCode() );
|
nets.insert( conn_item->GetNetCode() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -656,8 +660,8 @@ const std::vector<CN_EDGE> CONNECTIVITY_DATA::GetRatsnestForItems( std::vector<B
|
||||||
auto srcNode = edge.GetSourceNode();
|
auto srcNode = edge.GetSourceNode();
|
||||||
auto dstNode = edge.GetTargetNode();
|
auto dstNode = edge.GetTargetNode();
|
||||||
|
|
||||||
auto srcParent = static_cast<BOARD_ITEM*>( srcNode->Parent() );
|
auto srcParent = srcNode->Parent();
|
||||||
auto dstParent = static_cast<BOARD_ITEM*>( dstNode->Parent() );
|
auto dstParent = dstNode->Parent();
|
||||||
|
|
||||||
bool srcFound = ( item_set.find(srcParent) != item_set.end() );
|
bool srcFound = ( item_set.find(srcParent) != item_set.end() );
|
||||||
bool dstFound = ( item_set.find(dstParent) != item_set.end() );
|
bool dstFound = ( item_set.find(dstParent) != item_set.end() );
|
||||||
|
|
Loading…
Reference in New Issue