+ added clear method

git-svn-id: trunk@10440 -
This commit is contained in:
marc 2007-01-14 17:25:26 +00:00
parent e164ae8273
commit 50ffaeefa1

View File

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