pns: fixed a few memleaks & conditional jumps depending on uninitalized variables
This commit is contained in:
parent
7909de6127
commit
9f0b42cb35
|
@ -466,31 +466,32 @@ bool SHAPE::Collide( const SHAPE* aShape, int aClerance ) const
|
||||||
return CollideShapes( this, aShape, aClerance, false, dummy );
|
return CollideShapes( this, aShape, aClerance, false, dummy );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool SHAPE_RECT::Collide( const SEG& aSeg, int aClearance ) const
|
bool SHAPE_RECT::Collide( const SEG& aSeg, int aClearance ) const
|
||||||
|
{
|
||||||
|
//VECTOR2I pmin = VECTOR2I( std::min( aSeg.a.x, aSeg.b.x ), std::min( aSeg.a.y, aSeg.b.y ) );
|
||||||
|
//VECTOR2I pmax = VECTOR2I( std::max( aSeg.a.x, aSeg.b.x ), std::max( aSeg.a.y, aSeg.b.y ));
|
||||||
|
//BOX2I r( pmin, VECTOR2I( pmax.x - pmin.x, pmax.y - pmin.y ) );
|
||||||
|
|
||||||
|
//if( BBox( 0 ).SquaredDistance( r ) > aClearance * aClearance )
|
||||||
|
// return false;
|
||||||
|
|
||||||
|
if( BBox( 0 ).Contains( aSeg.A ) || BBox( 0 ).Contains( aSeg.B ) )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
VECTOR2I vts[] = { VECTOR2I( m_p0.x, m_p0.y ),
|
||||||
|
VECTOR2I( m_p0.x, m_p0.y + m_h ),
|
||||||
|
VECTOR2I( m_p0.x + m_w, m_p0.y + m_h ),
|
||||||
|
VECTOR2I( m_p0.x + m_w, m_p0.y ),
|
||||||
|
VECTOR2I( m_p0.x, m_p0.y ) };
|
||||||
|
|
||||||
|
for( int i = 0; i < 4; i++ )
|
||||||
{
|
{
|
||||||
//VECTOR2I pmin = VECTOR2I( std::min( aSeg.a.x, aSeg.b.x ), std::min( aSeg.a.y, aSeg.b.y ) );
|
SEG s( vts[i], vts[i + 1], i );
|
||||||
//VECTOR2I pmax = VECTOR2I( std::max( aSeg.a.x, aSeg.b.x ), std::max( aSeg.a.y, aSeg.b.y ));
|
|
||||||
//BOX2I r( pmin, VECTOR2I( pmax.x - pmin.x, pmax.y - pmin.y ) );
|
|
||||||
|
|
||||||
//if( BBox( 0 ).SquaredDistance( r ) > aClearance * aClearance )
|
if( s.Distance( aSeg ) < aClearance )
|
||||||
// return false;
|
|
||||||
|
|
||||||
if( BBox( 0 ).Contains( aSeg.A ) || BBox( 0 ).Contains( aSeg.B ) )
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
VECTOR2I vts[] = { VECTOR2I( m_p0.x, m_p0.y ),
|
|
||||||
VECTOR2I( m_p0.x, m_p0.y + m_h ),
|
|
||||||
VECTOR2I( m_p0.x + m_w, m_p0.y + m_h ),
|
|
||||||
VECTOR2I( m_p0.x + m_w, m_p0.y ),
|
|
||||||
VECTOR2I( m_p0.x, m_p0.y ) };
|
|
||||||
|
|
||||||
for( int i = 0; i < 4; i++ )
|
|
||||||
{
|
|
||||||
SEG s( vts[i], vts[i + 1], i );
|
|
||||||
|
|
||||||
if( s.Distance( aSeg ) < aClearance )
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
|
@ -295,6 +295,7 @@ public:
|
||||||
~PNS_PCBNEW_DEBUG_DECORATOR()
|
~PNS_PCBNEW_DEBUG_DECORATOR()
|
||||||
{
|
{
|
||||||
Clear();
|
Clear();
|
||||||
|
delete m_items;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetView( KIGFX::VIEW* aView )
|
void SetView( KIGFX::VIEW* aView )
|
||||||
|
@ -416,11 +417,14 @@ PNS_KICAD_IFACE::PNS_KICAD_IFACE()
|
||||||
|
|
||||||
PNS_KICAD_IFACE::~PNS_KICAD_IFACE()
|
PNS_KICAD_IFACE::~PNS_KICAD_IFACE()
|
||||||
{
|
{
|
||||||
if( m_ruleResolver )
|
delete m_ruleResolver;
|
||||||
delete m_ruleResolver;
|
delete m_debugDecorator;
|
||||||
|
|
||||||
if( m_debugDecorator )
|
if( m_previewItems )
|
||||||
delete m_debugDecorator;
|
{
|
||||||
|
m_previewItems->FreeItems();
|
||||||
|
delete m_previewItems;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -741,9 +745,7 @@ void PNS_KICAD_IFACE::SyncWorld( PNS_NODE *aWorld )
|
||||||
|
|
||||||
int worstClearance = m_board->GetDesignSettings().GetBiggestClearanceValue();
|
int worstClearance = m_board->GetDesignSettings().GetBiggestClearanceValue();
|
||||||
|
|
||||||
if( m_ruleResolver )
|
delete m_ruleResolver;
|
||||||
delete m_ruleResolver;
|
|
||||||
|
|
||||||
m_ruleResolver = new PNS_PCBNEW_RULE_RESOLVER( m_board, m_router );
|
m_ruleResolver = new PNS_PCBNEW_RULE_RESOLVER( m_board, m_router );
|
||||||
|
|
||||||
aWorld->SetRuleResolver( m_ruleResolver );
|
aWorld->SetRuleResolver( m_ruleResolver );
|
||||||
|
@ -892,9 +894,7 @@ void PNS_KICAD_IFACE::SetView( KIGFX::VIEW *aView )
|
||||||
m_view->Add( m_previewItems );
|
m_view->Add( m_previewItems );
|
||||||
m_previewItems->ViewSetVisible( true );
|
m_previewItems->ViewSetVisible( true );
|
||||||
|
|
||||||
if( m_debugDecorator )
|
delete m_debugDecorator;
|
||||||
delete m_debugDecorator;
|
|
||||||
|
|
||||||
m_debugDecorator = new PNS_PCBNEW_DEBUG_DECORATOR();
|
m_debugDecorator = new PNS_PCBNEW_DEBUG_DECORATOR();
|
||||||
m_debugDecorator->SetView( m_view );
|
m_debugDecorator->SetView( m_view );
|
||||||
}
|
}
|
||||||
|
|
|
@ -205,6 +205,7 @@ struct PNS_NODE::DEFAULT_OBSTACLE_VISITOR : public PNS_OBSTACLE_VISITOR
|
||||||
m_kindMask( aKindMask ),
|
m_kindMask( aKindMask ),
|
||||||
m_limitCount( -1 ),
|
m_limitCount( -1 ),
|
||||||
m_matchCount( 0 ),
|
m_matchCount( 0 ),
|
||||||
|
m_extraClearance( 0 ),
|
||||||
m_differentNetsOnly( aDifferentNetsOnly ),
|
m_differentNetsOnly( aDifferentNetsOnly ),
|
||||||
m_forceClearance( -1 )
|
m_forceClearance( -1 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -68,7 +68,10 @@ TOOL_ACTION PNS_TOOL_BASE::ACT_RouterOptions( "pcbnew.InteractiveRouter.RouterOp
|
||||||
PNS_TOOL_BASE::PNS_TOOL_BASE( const std::string& aToolName ) :
|
PNS_TOOL_BASE::PNS_TOOL_BASE( const std::string& aToolName ) :
|
||||||
TOOL_INTERACTIVE( aToolName )
|
TOOL_INTERACTIVE( aToolName )
|
||||||
{
|
{
|
||||||
|
m_gridHelper = NULL;
|
||||||
|
m_iface = NULL;
|
||||||
m_router = NULL;
|
m_router = NULL;
|
||||||
|
|
||||||
m_startItem = NULL;
|
m_startItem = NULL;
|
||||||
m_startLayer = 0;
|
m_startLayer = 0;
|
||||||
|
|
||||||
|
@ -83,20 +86,18 @@ PNS_TOOL_BASE::PNS_TOOL_BASE( const std::string& aToolName ) :
|
||||||
|
|
||||||
PNS_TOOL_BASE::~PNS_TOOL_BASE()
|
PNS_TOOL_BASE::~PNS_TOOL_BASE()
|
||||||
{
|
{
|
||||||
delete m_router;
|
|
||||||
delete m_gridHelper;
|
delete m_gridHelper;
|
||||||
|
delete m_iface;
|
||||||
|
delete m_router;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void PNS_TOOL_BASE::Reset( RESET_REASON aReason )
|
void PNS_TOOL_BASE::Reset( RESET_REASON aReason )
|
||||||
{
|
{
|
||||||
if( m_router )
|
delete m_gridHelper;
|
||||||
delete m_router;
|
delete m_iface;
|
||||||
|
delete m_router;
|
||||||
if( m_gridHelper)
|
|
||||||
delete m_gridHelper;
|
|
||||||
|
|
||||||
|
|
||||||
m_frame = getEditFrame<PCB_EDIT_FRAME>();
|
m_frame = getEditFrame<PCB_EDIT_FRAME>();
|
||||||
m_ctls = getViewControls();
|
m_ctls = getViewControls();
|
||||||
|
|
Loading…
Reference in New Issue