pcbnew: remove bug in block delete zone (crashes pcbnew)

This commit is contained in:
CHARRAS 2007-11-29 11:13:16 +00:00
parent 62e68c3aa3
commit cea3f06a9d
4 changed files with 12 additions and 7 deletions

View File

@ -4,6 +4,11 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with Please add newer entries at the top, list the date and your name with
email address. email address.
2007-Nov-29 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
Removed a bug (function block() ) which crashes pcbnew when erasing a zone by block delete
2007-Nov-27 UPDATE Dick Hollenbeck <dick@softplc.com> 2007-Nov-27 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================ ================================================================================

View File

@ -36,7 +36,7 @@ in kicad-dev:
lines to edit: lines to edit:
STD_INSTALL = 1 STD_INSTALL = 1
which can be (see comments in libs.linux) which can be (see comments in libs.linux)
STD_INSTALL = 1 STD_INSTALL = 0 (or 2)
after libs.linux edition: after libs.linux edition:
run make -f makefile.gtk run make -f makefile.gtk

View File

@ -5,7 +5,7 @@
COMMON_GLOBL wxString g_BuildVersion COMMON_GLOBL wxString g_BuildVersion
#ifdef EDA_BASE #ifdef EDA_BASE
(wxT("(2007-11-19)")) (wxT("(2007-11-29)"))
#endif #endif
; ;

View File

@ -565,17 +565,17 @@ void WinEDA_BasePcbFrame::Block_Delete( wxDC* DC )
/* Effacement des Zones */ /* Effacement des Zones */
if( Block_Include_Zones ) if( Block_Include_Zones )
{ {
TRACK* pt_segm; SEGZONE* pt_segm, *NextSegZ;
Affiche_Message( _( "Delete zones" ) ); Affiche_Message( _( "Delete zones" ) );
for( pt_segm = m_Pcb->m_Zone; pt_segm != NULL; pt_segm = (TRACK*) NextS ) for( pt_segm = m_Pcb->m_Zone; pt_segm != NULL; pt_segm = NextSegZ )
{ {
NextS = pt_segm->Next(); NextSegZ = pt_segm->Next();
if( IsSegmentInBox( GetScreen()->BlockLocate, pt_segm ) ) if( IsSegmentInBox( GetScreen()->BlockLocate, pt_segm ) )
{ {
/* la piste est ici bonne a etre efface */ /* The segment zone is in the block: delete it */
pt_segm->Draw( DrawPanel, DC, GR_XOR ); pt_segm->Draw( DrawPanel, DC, GR_XOR );
PtStruct->DeleteStructure(); pt_segm->DeleteStructure();
} }
} }
} }