mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 13:59:28 +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;
|
||||
|
||||
// TAVLTree.FreeAndClear
|
||||
var
|
||||
r: TAVLTreeNode;
|
||||
begin
|
||||
// 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
|
||||
Clear;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user