mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-11 00:19:38 +02:00
lazutils: TStringToPointerTree: fixed freeing value on replace
git-svn-id: trunk@53305 -
This commit is contained in:
parent
7d3b4320c2
commit
f96014d35b
@ -526,16 +526,20 @@ end;
|
||||
procedure TStringToPointerTree.SetValues(const s: string; const AValue: Pointer);
|
||||
var
|
||||
Node: TAvgLvlTreeNode;
|
||||
NewItem: PStringToPointerItem;
|
||||
Item: PStringToPointerItem;
|
||||
begin
|
||||
Node:=FindNode(s);
|
||||
if Node<>nil then begin
|
||||
PStringToPointerItem(Node.Data)^.Value:=AValue;
|
||||
Item:=PStringToPointerItem(Node.Data);
|
||||
if Item^.Value=AValue then exit;
|
||||
if FreeValues then
|
||||
TObject(Item^.Value).Free;
|
||||
Item^.Value:=AValue;
|
||||
end else begin
|
||||
New(NewItem);
|
||||
NewItem^.Name:=s;
|
||||
NewItem^.Value:=AValue;
|
||||
FTree.Add(NewItem);
|
||||
New(Item);
|
||||
Item^.Name:=s;
|
||||
Item^.Value:=AValue;
|
||||
FTree.Add(Item);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user