From cea3f06a9d5db84790318156e4445b298ae9d3bf Mon Sep 17 00:00:00 2001 From: CHARRAS Date: Thu, 29 Nov 2007 11:13:16 +0000 Subject: [PATCH] pcbnew: remove bug in block delete zone (crashes pcbnew) --- change_log.txt | 5 +++++ how-to-build-kicad.txt | 2 +- include/build_version.h | 2 +- pcbnew/block.cpp | 10 +++++----- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/change_log.txt b/change_log.txt index c51189335a..025d17cb63 100644 --- a/change_log.txt +++ b/change_log.txt @@ -4,6 +4,11 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with email address. +2007-Nov-29 UPDATE Jean-Pierre Charras +================================================================================ ++pcbnew: + Removed a bug (function block() ) which crashes pcbnew when erasing a zone by block delete + 2007-Nov-27 UPDATE Dick Hollenbeck ================================================================================ diff --git a/how-to-build-kicad.txt b/how-to-build-kicad.txt index d4aa085b71..90bbf150fa 100644 --- a/how-to-build-kicad.txt +++ b/how-to-build-kicad.txt @@ -36,7 +36,7 @@ in kicad-dev: lines to edit: STD_INSTALL = 1 which can be (see comments in libs.linux) - STD_INSTALL = 1 + STD_INSTALL = 0 (or 2) after libs.linux edition: run make -f makefile.gtk diff --git a/include/build_version.h b/include/build_version.h index 37c31161f2..8162e1e036 100644 --- a/include/build_version.h +++ b/include/build_version.h @@ -5,7 +5,7 @@ COMMON_GLOBL wxString g_BuildVersion #ifdef EDA_BASE - (wxT("(2007-11-19)")) + (wxT("(2007-11-29)")) #endif ; diff --git a/pcbnew/block.cpp b/pcbnew/block.cpp index f660f92437..f22d0d25bd 100644 --- a/pcbnew/block.cpp +++ b/pcbnew/block.cpp @@ -565,17 +565,17 @@ void WinEDA_BasePcbFrame::Block_Delete( wxDC* DC ) /* Effacement des Zones */ if( Block_Include_Zones ) { - TRACK* pt_segm; + SEGZONE* pt_segm, *NextSegZ; 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 ) ) { - /* la piste est ici bonne a etre efface */ + /* The segment zone is in the block: delete it */ pt_segm->Draw( DrawPanel, DC, GR_XOR ); - PtStruct->DeleteStructure(); + pt_segm->DeleteStructure(); } } }