From 0772af1ab7a57e20cdb1f88dfa339c8a8561cfe0 Mon Sep 17 00:00:00 2001 From: blikblum Date: Sat, 12 Dec 2009 23:14:56 +0000 Subject: [PATCH] * Fix crash in TBaseVirtualTree.FinishCutOrCopy git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1049 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../virtualtreeview-new/trunk/VirtualTrees.pas | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/components/virtualtreeview-new/trunk/VirtualTrees.pas b/components/virtualtreeview-new/trunk/VirtualTrees.pas index 5492f8e25..a9f888d3a 100644 --- a/components/virtualtreeview-new/trunk/VirtualTrees.pas +++ b/components/virtualtreeview-new/trunk/VirtualTrees.pas @@ -25654,17 +25654,23 @@ procedure TBaseVirtualTree.FinishCutOrCopy; // Deletes nodes which are marked as being cutted. var - Run: PVirtualNode; + Run, ToDelete: PVirtualNode; begin + if tsCutPending in FStates then begin Run := FRoot.FirstChild; while Assigned(Run) do begin if vsCutOrCopy in Run.States then - DeleteNode(Run); - Run := GetNextNoInit(Run); + begin + ToDelete := Run; + Run := GetNextNoInit(Run); + DeleteNode(ToDelete); + end + else + Run := GetNextNoInit(Run); end; DoStateChange([], [tsCutPending]); end;