mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-28 21:41:01 +02:00
IDE: fixed AV and memleak when closing Lazarus with an open fpdoc edit window
git-svn-id: trunk@15302 -
This commit is contained in:
parent
6b86d276a7
commit
97ffab3695
@ -181,6 +181,7 @@ type
|
||||
const AMethod: TMethod; AsLast: boolean = false);
|
||||
procedure RemoveHandler(HandlerType: TCodeHelpManagerHandler;
|
||||
const AMethod: TMethod);
|
||||
procedure FreeHandlers;
|
||||
procedure CallDocChangeEvents(HandlerType: TCodeHelpManagerHandler;
|
||||
Doc: TLazFPDocFile);
|
||||
function DoCreateFPDocFileForSource(const SrcFilename: string;
|
||||
@ -707,6 +708,14 @@ begin
|
||||
FHandlers[HandlerType].Remove(AMethod);
|
||||
end;
|
||||
|
||||
procedure TCodeHelpManager.FreeHandlers;
|
||||
var
|
||||
HandlerType: TCodeHelpManagerHandler;
|
||||
begin
|
||||
for HandlerType:=Low(TCodeHelpManagerHandler) to High(TCodeHelpManagerHandler) do
|
||||
FreeThenNil(FHandlers[HandlerType]);
|
||||
end;
|
||||
|
||||
procedure TCodeHelpManager.CallDocChangeEvents(HandlerType: TCodeHelpManagerHandler;
|
||||
Doc: TLazFPDocFile);
|
||||
var
|
||||
@ -922,6 +931,7 @@ begin
|
||||
FreeAndNil(FDocs);
|
||||
FreeAndNil(FSrcToDocMap);
|
||||
FreeAndNil(FDeclarationCache);
|
||||
FreeHandlers;
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
|
@ -292,7 +292,8 @@ procedure TFPDocEditor.FormDestroy(Sender: TObject);
|
||||
begin
|
||||
Reset;
|
||||
FreeAndNil(fChain);
|
||||
CodeHelpBoss.RemoveAllHandlersOfObject(Self);
|
||||
if assigned(CodeHelpBoss) then
|
||||
CodeHelpBoss.RemoveAllHandlersOfObject(Self);
|
||||
Application.RemoveAllHandlersOfObject(Self);
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user