lazutils: TPointerToPointerTree.ClearWithFree

git-svn-id: trunk@41951 -
This commit is contained in:
mattias 2013-07-01 11:14:38 +00:00
parent e16523559c
commit 69ae98e681

View File

@ -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;