mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-16 09:59:23 +02:00
lazbuild: fix memory leaks
git-svn-id: trunk@23612 -
This commit is contained in:
parent
bc1fd18141
commit
c831cad6e0
@ -961,7 +961,12 @@ destructor TLazBuildApplication.Destroy;
|
|||||||
begin
|
begin
|
||||||
CloseProject(Project1);
|
CloseProject(Project1);
|
||||||
|
|
||||||
FreeThenNil(PackageGraph);
|
if Assigned(PackageGraph) then
|
||||||
|
begin
|
||||||
|
PackageGraph.FreeAutoInstallDependencies;
|
||||||
|
FreeThenNil(PackageGraph);
|
||||||
|
end;
|
||||||
|
|
||||||
FreeThenNil(PkgLinks);
|
FreeThenNil(PkgLinks);
|
||||||
FreeThenNil(TheCompiler);
|
FreeThenNil(TheCompiler);
|
||||||
FreeThenNil(TheOutputFilter);
|
FreeThenNil(TheOutputFilter);
|
||||||
|
@ -299,6 +299,7 @@ type
|
|||||||
var InheritedOptionStrings: TInheritedCompOptsStrings): string;
|
var InheritedOptionStrings: TInheritedCompOptsStrings): string;
|
||||||
function SaveAutoInstallConfig: TModalResult;// for the uses section
|
function SaveAutoInstallConfig: TModalResult;// for the uses section
|
||||||
function IsStaticBasePackage(PackageName: string): boolean;
|
function IsStaticBasePackage(PackageName: string): boolean;
|
||||||
|
procedure FreeAutoInstallDependencies;
|
||||||
public
|
public
|
||||||
// registration
|
// registration
|
||||||
procedure RegisterUnitHandler(const TheUnitName: string;
|
procedure RegisterUnitHandler(const TheUnitName: string;
|
||||||
@ -1963,6 +1964,19 @@ begin
|
|||||||
or (PackageName='codetools');
|
or (PackageName='codetools');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TLazPackageGraph.FreeAutoInstallDependencies;
|
||||||
|
var
|
||||||
|
Dependency: TPkgDependency;
|
||||||
|
begin
|
||||||
|
while Assigned(PackageGraph.FirstAutoInstallDependency) do
|
||||||
|
begin
|
||||||
|
Dependency:=PackageGraph.FirstAutoInstallDependency;
|
||||||
|
Dependency.RequiredPackage:=nil;
|
||||||
|
Dependency.RemoveFromList(PackageGraph.FirstAutoInstallDependency,pdlRequires);
|
||||||
|
Dependency.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TLazPackageGraph.ClosePackage(APackage: TLazPackage);
|
procedure TLazPackageGraph.ClosePackage(APackage: TLazPackage);
|
||||||
begin
|
begin
|
||||||
if (lpfDestroying in APackage.Flags) or PackageIsNeeded(APackage) then exit;
|
if (lpfDestroying in APackage.Flags) or PackageIsNeeded(APackage) then exit;
|
||||||
|
@ -1806,18 +1806,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TPkgManager.Destroy;
|
destructor TPkgManager.Destroy;
|
||||||
var
|
|
||||||
Dependency: TPkgDependency;
|
|
||||||
begin
|
begin
|
||||||
if IDEComponentPalette<>nil then
|
if IDEComponentPalette<>nil then
|
||||||
TComponentPalette(IDEComponentPalette).Notebook:=nil;
|
TComponentPalette(IDEComponentPalette).Notebook:=nil;
|
||||||
FreeThenNil(LazPackageDescriptors);
|
FreeThenNil(LazPackageDescriptors);
|
||||||
while PackageGraph.FirstAutoInstallDependency<>nil do begin
|
PackageGraph.FreeAutoInstallDependencies;
|
||||||
Dependency:=PackageGraph.FirstAutoInstallDependency;
|
|
||||||
Dependency.RequiredPackage:=nil;
|
|
||||||
Dependency.RemoveFromList(PackageGraph.FirstAutoInstallDependency,pdlRequires);
|
|
||||||
Dependency.Free;
|
|
||||||
end;
|
|
||||||
FreeThenNil(PackageGraphExplorer);
|
FreeThenNil(PackageGraphExplorer);
|
||||||
FreeThenNil(PackageEditors);
|
FreeThenNil(PackageEditors);
|
||||||
FreeThenNil(PackageGraph);
|
FreeThenNil(PackageGraph);
|
||||||
|
Loading…
Reference in New Issue
Block a user