fixed removing package link

git-svn-id: trunk@4115 -
This commit is contained in:
mattias 2003-05-01 12:44:42 +00:00
parent 02dfdb0891
commit 9b9a5da111
4 changed files with 17 additions and 5 deletions

View File

@ -862,6 +862,7 @@ destructor TBuildLazarusOptions.Destroy;
begin
Clear;
fStaticAutoInstallPackages.Free;
fItems.Free;
inherited Destroy;
end;

View File

@ -608,18 +608,18 @@ var
begin
BeginUpdate;
// remove from user links
ANode:=FUserLinks.Find(APackageID);
ANode:=FUserLinks.FindKey(APackageID,@ComparePackageIDAndLink);
if ANode<>nil then begin
OldLink:=TPackageLink(ANode.Data);
FUserLinks.Remove(ANode);
FUserLinks.Delete(ANode);
OldLink.Free;
Modified:=true;
end;
// remove from global links
ANode:=FGlobalLinks.Find(APackageID);
ANode:=FGlobalLinks.FindKey(APackageID,@ComparePackageIDAndLink);
if ANode<>nil then begin
OldLink:=TPackageLink(ANode.Data);
FGlobalLinks.Remove(ANode);
FGlobalLinks.Delete(ANode);
OldLink.Free;
Modified:=true;
end;

View File

@ -330,11 +330,13 @@ begin
if not NewPackage.MakeSense then exit;
if PkgLink.Compare(NewPackage)<>0 then exit;
// ok
Result:=true;
AddPackage(NewPackage);
finally
if not Result then
NewPackage.Free;
EndUpdate;
end;
Result:=true;
end;
constructor TLazPackageGraph.Create;
@ -356,6 +358,7 @@ begin
if OnGetAllRequiredPackages=@GetAllRequiredPackages then
OnGetAllRequiredPackages:=nil;
Clear;
FLazarusBasePackages.Free;
FItems.Free;
FTree.Free;
inherited Destroy;

View File

@ -1257,7 +1257,15 @@ begin
end;
destructor TPkgManager.Destroy;
var
Dependency: TPkgDependency;
begin
while FirstAutoInstallDependency<>nil do begin
Dependency:=FirstAutoInstallDependency;
Dependency.RequiredPackage:=nil;
Dependency.RemoveFromList(FirstAutoInstallDependency,pdlRequires);
Dependency.Free;
end;
FreeThenNil(PackageGraphExplorer);
FreeThenNil(PackageEditors);
FreeThenNil(PackageGraph);