SynEdit: prevent dangling pointer

git-svn-id: trunk@47146 -
This commit is contained in:
martin 2014-12-09 00:50:31 +00:00
parent 0a55b11a3e
commit 2006ddcda1

View File

@ -1756,14 +1756,16 @@ procedure TSynCustomHighlighter.DetachFromLines(Lines: TSynEditStringsBase);
var
r: TSynHighlighterRangeList;
begin
//if Lines = CurrentLines then
// CurrentLines := nil;
r := TSynHighlighterRangeList(Lines.Ranges[GetRangeIdentifier]);
if not assigned(r) then exit;
r.DecRefCount;
BeforeDetachedFromRangeList(r); // RefCount already decreased
if r.RefCount = 0 then begin
Lines.Ranges[GetRangeIdentifier] := nil;
if FCurrentRanges = r then begin
FCurrentRanges := nil;
FCurrentLines := nil;
end;
r.Free;
end;
FKnownLines.Remove(Lines);