From 5f92759f521be7e284481f1ac6ce17cbb26fa0ec Mon Sep 17 00:00:00 2001 From: juha Date: Fri, 6 Jan 2017 14:03:22 +0000 Subject: [PATCH] Converter: Do not free CacheUnitsThread automatically on terminate. Fixes a memory leak when conversion is aborted. git-svn-id: trunk@53894 - --- converter/convertdelphi.pas | 1 + converter/convertsettings.pas | 5 ----- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/converter/convertdelphi.pas b/converter/convertdelphi.pas index 0283ae3fc4..f50b32cf5b 100644 --- a/converter/convertdelphi.pas +++ b/converter/convertdelphi.pas @@ -1033,6 +1033,7 @@ begin Result:=mrAbort; end; finally + CacheUnitsThread.Free; EndTime:=Now; s:=FormatDateTime('hh:nn:ss', EndTime-StartTime); if (Result<>mrAbort) and (s<>'00:00:00') then diff --git a/converter/convertsettings.pas b/converter/convertsettings.pas index eeefa33954..2b9b1e50df 100644 --- a/converter/convertsettings.pas +++ b/converter/convertsettings.pas @@ -212,7 +212,6 @@ type public constructor Create(AOwner: TComponent; ASettings: TConvertSettings); reintroduce; destructor Destroy; override; - property CacheUnitsThread: TThread read fCacheUnitsThread; end; @@ -853,8 +852,6 @@ end; destructor TConvertSettingsForm.Destroy; begin - if Assigned(fCacheUnitsThread) and not fThreadStarted then - fCacheUnitsThread.Free; inherited Destroy; end; @@ -966,7 +963,6 @@ begin if ScanParentDirCheckBox.Checked and Assigned(fCacheUnitsThread) then begin ThreadGuiShow(True); - fCacheUnitsThread.FreeOnTerminate:=True; fCacheUnitsThread.OnTerminate:=@ThreadTerminated; fCacheUnitsThread.Start; fThreadStarted := True; @@ -1002,7 +998,6 @@ end; procedure TConvertSettingsForm.ThreadTerminated(Sender: TObject); begin ThreadGuiShow(False); - fCacheUnitsThread := nil; // Thread frees itself. Make the variable nil, too. end; // Edit replacements in grids