mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-03 22:20:17 +02:00
IDE: Free the new IDE builder object only at the very end. It is used longer than it first appears.
git-svn-id: trunk@44031 -
This commit is contained in:
parent
197fad765b
commit
3407665a5d
15
ide/main.pp
15
ide/main.pp
@ -1652,6 +1652,7 @@ begin
|
|||||||
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TMainIDE.Destroy C ');{$ENDIF}
|
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TMainIDE.Destroy C ');{$ENDIF}
|
||||||
|
|
||||||
FreeThenNil(IDEProtocolOpts);
|
FreeThenNil(IDEProtocolOpts);
|
||||||
|
FreeThenNil(fBuilder);
|
||||||
DebugLn('[TMainIDE.Destroy] END');
|
DebugLn('[TMainIDE.Destroy] END');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -4531,6 +4532,7 @@ var
|
|||||||
FoundProfToBuild: Boolean;
|
FoundProfToBuild: Boolean;
|
||||||
s: String;
|
s: String;
|
||||||
begin
|
begin
|
||||||
|
if ToolStatus<>itNone then exit;
|
||||||
with MiscellaneousOptions do begin
|
with MiscellaneousOptions do begin
|
||||||
FoundProfToBuild:=False;
|
FoundProfToBuild:=False;
|
||||||
s:=sLineBreak+sLineBreak;
|
s:=sLineBreak+sLineBreak;
|
||||||
@ -4559,9 +4561,9 @@ var
|
|||||||
DlgResult: TModalResult;
|
DlgResult: TModalResult;
|
||||||
begin
|
begin
|
||||||
if ToolStatus<>itNone then exit;
|
if ToolStatus<>itNone then exit;
|
||||||
|
if fBuilder=Nil then
|
||||||
|
fBuilder:=TLazarusBuilder.Create; // Will be freed in the very end.
|
||||||
MainBuildBoss.SetBuildTargetIDE;
|
MainBuildBoss.SetBuildTargetIDE;
|
||||||
fBuilder := TLazarusBuilder.Create; // Build profile is not known yet.
|
|
||||||
try
|
|
||||||
try
|
try
|
||||||
DlgResult:=fBuilder.ShowConfigureBuildLazarusDlg(MiscellaneousOptions.BuildLazProfiles);
|
DlgResult:=fBuilder.ShowConfigureBuildLazarusDlg(MiscellaneousOptions.BuildLazProfiles);
|
||||||
finally
|
finally
|
||||||
@ -4590,9 +4592,6 @@ begin
|
|||||||
DoBuildLazarus([]);
|
DoBuildLazarus([]);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
finally
|
|
||||||
FreeAndNil(fBuilder);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainIDE.mnuCustomExtToolClick(Sender: TObject);
|
procedure TMainIDE.mnuCustomExtToolClick(Sender: TObject);
|
||||||
@ -7517,7 +7516,6 @@ var
|
|||||||
FPCVersion, FPCRelease, FPCPatch: integer;
|
FPCVersion, FPCRelease, FPCPatch: integer;
|
||||||
PkgCompileFlags: TPkgCompileFlags;
|
PkgCompileFlags: TPkgCompileFlags;
|
||||||
ProfileChanged: Boolean;
|
ProfileChanged: Boolean;
|
||||||
BuilderCreated: Boolean;
|
|
||||||
begin
|
begin
|
||||||
if ToolStatus<>itNone then begin
|
if ToolStatus<>itNone then begin
|
||||||
IDEMessageDialog(lisNotNow,lisYouCanNotBuildLazarusWhileDebuggingOrCompiling,
|
IDEMessageDialog(lisNotNow,lisYouCanNotBuildLazarusWhileDebuggingOrCompiling,
|
||||||
@ -7532,8 +7530,7 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
BuilderCreated := fBuilder = Nil;
|
if fBuilder=Nil then
|
||||||
if BuilderCreated then
|
|
||||||
fBuilder:=TLazarusBuilder.Create;
|
fBuilder:=TLazarusBuilder.Create;
|
||||||
{$IFNDEF EnableNewExtTools}
|
{$IFNDEF EnableNewExtTools}
|
||||||
MessagesView.BeginBlock;
|
MessagesView.BeginBlock;
|
||||||
@ -7617,8 +7614,6 @@ begin
|
|||||||
if ProfileChanged then
|
if ProfileChanged then
|
||||||
MiscellaneousOptions.Save;
|
MiscellaneousOptions.Save;
|
||||||
finally
|
finally
|
||||||
if BuilderCreated then
|
|
||||||
FreeAndNil(fBuilder);
|
|
||||||
MainBuildBoss.SetBuildTargetProject1(true);
|
MainBuildBoss.SetBuildTargetProject1(true);
|
||||||
DoCheckFilesOnDisk;
|
DoCheckFilesOnDisk;
|
||||||
{$IFNDEF EnableNewExtTools}
|
{$IFNDEF EnableNewExtTools}
|
||||||
|
Loading…
Reference in New Issue
Block a user