mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-06 09:27:50 +01:00
+ added clear method
git-svn-id: trunk@10440 -
This commit is contained in:
parent
e164ae8273
commit
50ffaeefa1
25
lcl/maps.pp
25
lcl/maps.pp
@ -88,6 +88,7 @@ type
|
||||
FIterators: TList; // A List of iterators iterating us
|
||||
function FindNode(const AId): TAvgLvlTreeNode;
|
||||
function FindItem(const AId): PMapItem;
|
||||
procedure FreeData(ANode: TAvgLvlTreeNode);
|
||||
function TreeCompareID(Sender: TAvgLvlTree; AItem1, AItem2: Pointer): Integer;
|
||||
//--
|
||||
procedure IteratorAdd(AIterator: TBaseMapIterator);
|
||||
@ -100,6 +101,7 @@ type
|
||||
public
|
||||
procedure Add(const AId, AData);
|
||||
constructor Create(AIdType: TMapIdType; ADataSize: Cardinal);
|
||||
procedure Clear;
|
||||
function Count: Integer;
|
||||
function Delete(const AId): Boolean;
|
||||
destructor Destroy; override;
|
||||
@ -257,6 +259,12 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TBaseMap.Clear;
|
||||
begin
|
||||
FreeData(FTree.Root);
|
||||
FTree.Clear;
|
||||
end;
|
||||
|
||||
function TBaseMap.Count: Integer;
|
||||
begin
|
||||
Result := FTree.Count;
|
||||
@ -299,15 +307,6 @@ begin
|
||||
end;
|
||||
|
||||
destructor TBaseMap.Destroy;
|
||||
|
||||
procedure FreeData(ANode: TAvgLvlTreeNode);
|
||||
begin
|
||||
if ANode = nil then Exit;
|
||||
FreeData(ANode.Left);
|
||||
FreeData(ANode.Right);
|
||||
FreeMem(ANode.Data);
|
||||
end;
|
||||
|
||||
var
|
||||
n: Integer;
|
||||
begin
|
||||
@ -342,6 +341,14 @@ begin
|
||||
Result := FTree.Find(@Item);
|
||||
end;
|
||||
|
||||
procedure TBaseMap.FreeData(ANode: TAvgLvlTreeNode);
|
||||
begin
|
||||
if ANode = nil then Exit;
|
||||
FreeData(ANode.Left);
|
||||
FreeData(ANode.Right);
|
||||
FreeMem(ANode.Data);
|
||||
end;
|
||||
|
||||
function TBaseMap.InternalGetData(AItem: PMapItem; out AData): Boolean;
|
||||
var
|
||||
p: Pointer;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user