PCB: check ratsnest for nullptr (segfaults)
This commit is contained in:
parent
d9c2e0ab54
commit
9079df85fd
|
@ -967,6 +967,9 @@ CONNECTIVITY_DATA::GetRatsnestForItems( const std::vector<BOARD_ITEM*>& aItems )
|
|||
{
|
||||
RN_NET* net = GetRatsnestForNet( netcode );
|
||||
|
||||
if( !net )
|
||||
continue;
|
||||
|
||||
for( const CN_EDGE& edge : net->GetEdges() )
|
||||
{
|
||||
std::shared_ptr<const CN_ANCHOR> srcNode = edge.GetSourceNode();
|
||||
|
@ -992,6 +995,9 @@ const std::vector<CN_EDGE> CONNECTIVITY_DATA::GetRatsnestForPad( const PAD* aPad
|
|||
std::vector<CN_EDGE> edges;
|
||||
RN_NET* net = GetRatsnestForNet( aPad->GetNetCode() );
|
||||
|
||||
if( !net )
|
||||
return edges;
|
||||
|
||||
for( const CN_EDGE& edge : net->GetEdges() )
|
||||
{
|
||||
if( edge.GetSourceNode()->Parent() == aPad || edge.GetTargetNode()->Parent() == aPad )
|
||||
|
@ -1017,7 +1023,12 @@ const std::vector<CN_EDGE> CONNECTIVITY_DATA::GetRatsnestForComponent( FOOTPRINT
|
|||
|
||||
for( int netcode : nets )
|
||||
{
|
||||
for( const CN_EDGE& edge : GetRatsnestForNet( netcode )->GetEdges() )
|
||||
RN_NET* net = GetRatsnestForNet( netcode );
|
||||
|
||||
if( !net )
|
||||
continue;
|
||||
|
||||
for( const CN_EDGE& edge : net->GetEdges() )
|
||||
{
|
||||
const std::shared_ptr<const CN_ANCHOR>& srcNode = edge.GetSourceNode();
|
||||
const std::shared_ptr<const CN_ANCHOR>& dstNode = edge.GetTargetNode();
|
||||
|
|
|
@ -1682,6 +1682,10 @@ int ROUTER_TOOL::RouteSelected( const TOOL_EVENT& aEvent )
|
|||
// the side of the connectivity on this pad. It also checks for ratsnest points
|
||||
// inside the pad (like a trace end) and counts them.
|
||||
RN_NET* net = connectivity->GetRatsnestForNet( item->GetNetCode() );
|
||||
|
||||
if( !net )
|
||||
continue;
|
||||
|
||||
std::vector<std::shared_ptr<const CN_ANCHOR>> anchors;
|
||||
|
||||
for( const CN_EDGE& edge : net->GetEdges() )
|
||||
|
|
Loading…
Reference in New Issue