From 5652e05efdd17dc09b97445782932ba8e0aa469c Mon Sep 17 00:00:00 2001 From: Maxim Ganetsky Date: Sat, 29 Jul 2023 16:19:30 +0300 Subject: [PATCH] IDEDebugger: fixed crashes when manipulating breakpoints in BreakPoints dialog, patch by Martin --- ide/packages/idedebugger/breakpointsdlg.pp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/ide/packages/idedebugger/breakpointsdlg.pp b/ide/packages/idedebugger/breakpointsdlg.pp index 8c2c7b572c..85a2bdb42b 100644 --- a/ide/packages/idedebugger/breakpointsdlg.pp +++ b/ide/packages/idedebugger/breakpointsdlg.pp @@ -43,7 +43,8 @@ uses {$ifdef Windows} ActiveX, {$else} laz.FakeActiveX, {$endif} DbgIntfDebuggerBase, DbgIntfMiscClasses, BaseDebugManager, IdeDebuggerStringConstants, DebuggerTreeView, breakpointgroupframe, - IdeDebuggerOpts, IdeIntfStrConsts, SrcEditorIntf, laz.VirtualTrees; + IdeDebuggerOpts, IdeIntfStrConsts, SrcEditorIntf, laz.VirtualTrees, + LazDebuggerIntf; type TBreakPointsDlgState = ( @@ -850,11 +851,9 @@ begin mtConfirmation,[mbYes,mbCancel],0)<>mrYes then exit; - VNode := tvBreakPoints.GetFirstNoInit; - while VNode <> nil do + for VNode in tvBreakPoints.NoInitItemNodes do begin CurBreakPoint:=TIDEBreakPoint(tvBreakPoints.NodeItem[VNode]); - VNode := tvBreakPoints.GetNextNoInit(VNode); if CompareFilenames(CurBreakPoint.Source,Filename)=0 then ReleaseRefAndNil(CurBreakPoint); end; @@ -923,11 +922,9 @@ begin mtConfirmation,[mbYes,mbCancel],0)<>mrYes then exit; - VNode := tvBreakPoints.GetFirstNoInit; - while VNode <> nil do + for VNode in tvBreakPoints.NoInitItemNodes do begin CurBreakPoint:=TIDEBreakPoint(tvBreakPoints.NodeItem[VNode]); - VNode := tvBreakPoints.GetNextNoInit(VNode); CurBreakPoint.ReleaseReference; end; finally @@ -1588,11 +1585,9 @@ begin else begin tvBreakPoints.BeginUpdate; try - VNode := tvBreakPoints.GetFirstSelected; - while VNode <> nil do + for VNode in tvBreakPoints.SelectedItemNodes do begin CurBreakPoint:=TIDEBreakPoint(tvBreakPoints.NodeItem[VNode]); - VNode := tvBreakPoints.GetNextSelected(VNode); CurBreakPoint.ReleaseReference; end; finally