Cleanup zone bbox cache in destructor

This commit is contained in:
qu1ck 2023-01-10 18:57:51 -08:00 committed by Jeff Young
parent f4ac4be701
commit 2654279678
2 changed files with 10 additions and 4 deletions

View File

@ -229,6 +229,9 @@ FOOTPRINT::~FOOTPRINT()
delete d; delete d;
m_drawings.clear(); m_drawings.clear();
if( BOARD* board = GetBoard() )
board->IncrementTimeStamp();
} }

View File

@ -93,6 +93,9 @@ ZONE::~ZONE()
{ {
delete m_Poly; delete m_Poly;
delete m_CornerSelection; delete m_CornerSelection;
if( BOARD* board = GetBoard() )
board->IncrementTimeStamp();
} }
@ -643,7 +646,7 @@ void ZONE::Move( const VECTOR2I& offset )
if( GetBoard() ) if( GetBoard() )
{ {
auto it = GetBoard()->m_ZoneBBoxCache.find( this ); auto it = GetBoard()->m_ZoneBBoxCache.find( this );
if( it != GetBoard()->m_ZoneBBoxCache.end() ) if( it != GetBoard()->m_ZoneBBoxCache.end() )
it->second.Move( offset ); it->second.Move( offset );
} }
@ -1413,7 +1416,7 @@ static struct ZONE_DESC
return false; return false;
}; };
auto layer = new PROPERTY_ENUM<ZONE, PCB_LAYER_ID>( _HKI( "Layer" ), auto layer = new PROPERTY_ENUM<ZONE, PCB_LAYER_ID>( _HKI( "Layer" ),
&ZONE::SetLayer, &ZONE::GetLayer ); &ZONE::SetLayer, &ZONE::GetLayer );
layer->SetIsInternal( true ); layer->SetIsInternal( true );
@ -1467,12 +1470,12 @@ static struct ZONE_DESC
&ZONE::SetLocalClearance, &ZONE::GetLocalClearance, &ZONE::SetLocalClearance, &ZONE::GetLocalClearance,
PROPERTY_DISPLAY::PT_SIZE ); PROPERTY_DISPLAY::PT_SIZE );
clearanceOverride->SetAvailableFunc( isCopperZone ); clearanceOverride->SetAvailableFunc( isCopperZone );
auto minWidth = new PROPERTY<ZONE, int>( _HKI( "Minimum Width" ), auto minWidth = new PROPERTY<ZONE, int>( _HKI( "Minimum Width" ),
&ZONE::SetMinThickness, &ZONE::GetMinThickness, &ZONE::SetMinThickness, &ZONE::GetMinThickness,
PROPERTY_DISPLAY::PT_SIZE ); PROPERTY_DISPLAY::PT_SIZE );
minWidth->SetAvailableFunc( isCopperZone ); minWidth->SetAvailableFunc( isCopperZone );
auto padConnections = new PROPERTY_ENUM<ZONE, ZONE_CONNECTION>( _HKI( "Pad Connections" ), auto padConnections = new PROPERTY_ENUM<ZONE, ZONE_CONNECTION>( _HKI( "Pad Connections" ),
&ZONE::SetPadConnection, &ZONE::GetPadConnection ); &ZONE::SetPadConnection, &ZONE::GetPadConnection );
padConnections->SetAvailableFunc( isCopperZone ); padConnections->SetAvailableFunc( isCopperZone );