P&S router: fix unguarded boost optional derefernce. (fixes lp:1427880)

This commit is contained in:
Tomasz Wlostowski 2015-03-03 20:16:14 -05:00 committed by Wayne Stambaugh
parent b580ef70c5
commit 5f1c9060ac
1 changed files with 9 additions and 6 deletions

View File

@ -638,14 +638,17 @@ void PNS_DP_GATEWAYS::BuildGeneric( const VECTOR2I& p0_p, const VECTOR2I& p0_n,
// are on the same straight/diagonal line // are on the same straight/diagonal line
for( int k = 0; k < 2; k++ ) for( int k = 0; k < 2; k++ )
{ {
m = *ips[k]; if (ips[k] )
if( m && *m != p0_p && *m != p0_n )
{ {
int prio = ( padDist > padToGapThreshold * m_gap ? 10 : 20 ); const VECTOR2I m ( *ips[k] );
VECTOR2I g_p( ( p0_p - *m ).Resize( (double) m_gap * M_SQRT1_2 ) ); if( m != p0_p && m != p0_n )
VECTOR2I g_n( ( p0_n - *m ).Resize( (double) m_gap * M_SQRT1_2 ) ); {
int prio = ( padDist > padToGapThreshold * m_gap ? 10 : 20 );
VECTOR2I g_p( ( p0_p - m ).Resize( (double) m_gap * M_SQRT1_2 ) );
VECTOR2I g_n( ( p0_n - m ).Resize( (double) m_gap * M_SQRT1_2 ) );
m_gateways.push_back( PNS_DP_GATEWAY( *m + g_p, *m + g_n, k == 0 ? true : false, DIRECTION_45::ANG_OBTUSE, prio ) ); m_gateways.push_back( PNS_DP_GATEWAY( m + g_p, m + g_n, k == 0 ? true : false, DIRECTION_45::ANG_OBTUSE, prio ) );
}
} }
} }