mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-23 11:40:35 +02:00
SynEdit: Fixed Mem leak
git-svn-id: trunk@43416 -
This commit is contained in:
parent
15cbda1171
commit
126c85c628
@ -62,6 +62,7 @@ type
|
||||
function Left: TSynTextFoldAVLNodeData;
|
||||
function Parent: TSynTextFoldAVLNodeData;
|
||||
function Right: TSynTextFoldAVLNodeData;
|
||||
procedure FreeAllChildrenAndNested;
|
||||
public (* Position / Size *)
|
||||
(* FullCount: Amount of lines in source for this fold only
|
||||
(excluding overlaps) *)
|
||||
@ -1783,6 +1784,24 @@ begin
|
||||
Result := TSynTextFoldAVLNodeData(FRight);
|
||||
end;
|
||||
|
||||
procedure TSynTextFoldAVLNodeData.FreeAllChildrenAndNested;
|
||||
begin
|
||||
if FLeft <> nil then begin
|
||||
Left.FreeAllChildrenAndNested;
|
||||
FreeAndNil(FLeft);
|
||||
end;
|
||||
|
||||
if FRight <> nil then begin
|
||||
Right.FreeAllChildrenAndNested;
|
||||
FreeAndNil(FRight);
|
||||
end;
|
||||
|
||||
if Nested <> nil then begin
|
||||
Nested.FreeAllChildrenAndNested;
|
||||
FreeAndNil(Nested);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TSynTextFoldAVLNodeData.RecursiveFoldCount : Integer;
|
||||
var
|
||||
ANode: TSynTextFoldAVLNodeData;
|
||||
@ -2655,7 +2674,12 @@ begin
|
||||
end;
|
||||
MergeNode.LeftCount := 0;
|
||||
MergeNode.FBalance := 0;
|
||||
InsertNode(MergeNode);
|
||||
if MergeNode.FullCount <= 0 then begin
|
||||
MergeNode.FreeAllChildrenAndNested;
|
||||
MergeNode.Free;
|
||||
end
|
||||
else
|
||||
InsertNode(MergeNode);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user