mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-21 04:09:20 +02:00
fcl-base: TAVLTree.FreeAndClear: clear Root while freeing to avoid accidental access
This commit is contained in:
parent
8f3cce556d
commit
342f9c58cd
@ -1146,9 +1146,17 @@ procedure TAVLTree.FreeAndClear;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// TAVLTree.FreeAndClear
|
// TAVLTree.FreeAndClear
|
||||||
|
var
|
||||||
|
r: TAVLTreeNode;
|
||||||
begin
|
begin
|
||||||
// free all data
|
// free all data
|
||||||
FreeNodeData(Root);
|
r := Root;
|
||||||
|
FRoot := nil; // Prevent any being-destroyed object from removing its node.
|
||||||
|
try
|
||||||
|
FreeNodeData(r);
|
||||||
|
finally
|
||||||
|
FRoot := r;
|
||||||
|
end;
|
||||||
// free all nodes
|
// free all nodes
|
||||||
Clear;
|
Clear;
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user