fcl-base: TAVLTree.FreeAndClear: clear Root while freeing to avoid accidental access

This commit is contained in:
mattias 2023-04-02 21:14:44 +02:00
parent 8f3cce556d
commit 342f9c58cd

View File

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