mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-19 22:29:25 +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
|
||||
CloseProject(Project1);
|
||||
|
||||
FreeThenNil(PackageGraph);
|
||||
if Assigned(PackageGraph) then
|
||||
begin
|
||||
PackageGraph.FreeAutoInstallDependencies;
|
||||
FreeThenNil(PackageGraph);
|
||||
end;
|
||||
|
||||
FreeThenNil(PkgLinks);
|
||||
FreeThenNil(TheCompiler);
|
||||
FreeThenNil(TheOutputFilter);
|
||||
|
@ -299,6 +299,7 @@ type
|
||||
var InheritedOptionStrings: TInheritedCompOptsStrings): string;
|
||||
function SaveAutoInstallConfig: TModalResult;// for the uses section
|
||||
function IsStaticBasePackage(PackageName: string): boolean;
|
||||
procedure FreeAutoInstallDependencies;
|
||||
public
|
||||
// registration
|
||||
procedure RegisterUnitHandler(const TheUnitName: string;
|
||||
@ -1963,6 +1964,19 @@ begin
|
||||
or (PackageName='codetools');
|
||||
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);
|
||||
begin
|
||||
if (lpfDestroying in APackage.Flags) or PackageIsNeeded(APackage) then exit;
|
||||
|
@ -1806,18 +1806,11 @@ begin
|
||||
end;
|
||||
|
||||
destructor TPkgManager.Destroy;
|
||||
var
|
||||
Dependency: TPkgDependency;
|
||||
begin
|
||||
if IDEComponentPalette<>nil then
|
||||
TComponentPalette(IDEComponentPalette).Notebook:=nil;
|
||||
FreeThenNil(LazPackageDescriptors);
|
||||
while PackageGraph.FirstAutoInstallDependency<>nil do begin
|
||||
Dependency:=PackageGraph.FirstAutoInstallDependency;
|
||||
Dependency.RequiredPackage:=nil;
|
||||
Dependency.RemoveFromList(PackageGraph.FirstAutoInstallDependency,pdlRequires);
|
||||
Dependency.Free;
|
||||
end;
|
||||
PackageGraph.FreeAutoInstallDependencies;
|
||||
FreeThenNil(PackageGraphExplorer);
|
||||
FreeThenNil(PackageEditors);
|
||||
FreeThenNil(PackageGraph);
|
||||
|
Loading…
Reference in New Issue
Block a user