mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-16 11:39:23 +02:00
lazutils: TPointerToPointerTree.ClearWithFree
git-svn-id: trunk@41951 -
This commit is contained in:
parent
e16523559c
commit
69ae98e681
@ -198,6 +198,7 @@ type
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
procedure Clear;
|
||||
procedure ClearWithFree; // free Values with TObject(Value).Free
|
||||
procedure Remove(Key: Pointer);
|
||||
function Contains(const Key: Pointer): Boolean; inline;
|
||||
function GetFirst(out Key, Value: Pointer): Boolean;
|
||||
@ -2317,6 +2318,21 @@ begin
|
||||
FItems.Clear;
|
||||
end;
|
||||
|
||||
procedure TPointerToPointerTree.ClearWithFree;
|
||||
var
|
||||
Node: TAvgLvlTreeNode;
|
||||
Item: PPointerToPointerItem;
|
||||
begin
|
||||
Node:=FItems.FindLowest;
|
||||
while Node<>nil do begin
|
||||
Item:=PPointerToPointerItem(Node.Data);
|
||||
TObject(Item^.Value).Free;
|
||||
Dispose(Item);
|
||||
Node:=Node.Successor;
|
||||
end;
|
||||
FItems.Clear;
|
||||
end;
|
||||
|
||||
procedure TPointerToPointerTree.Remove(Key: Pointer);
|
||||
var
|
||||
Node: TAvgLvlTreeNode;
|
||||
|
Loading…
Reference in New Issue
Block a user