IDE: added flag if packagesystem should free link in RemoveLink

git-svn-id: trunk@12297 -
This commit is contained in:
mattias 2007-10-02 20:52:00 +00:00
parent 36106630ec
commit 0bee7cfd80
2 changed files with 8 additions and 7 deletions

View File

@ -150,7 +150,7 @@ type
procedure IteratePackages(MustExist: boolean; Event: TIteratePackagesEvent);
function AddUserLink(APackage: TLazPackage): TPackageLink;
function AddUserLink(const PkgFilename, PkgName: string): TPackageLink;
procedure RemoveLink(APackageID: TLazPackageID);
procedure RemoveLink(APackageID: TLazPackageID; FreeID: boolean);
public
property Modified: boolean read FModified write SetModified;
property DependencyOwnerGetPkgFilename: TDependencyOwnerGetPkgFilename
@ -756,7 +756,7 @@ begin
Result:=OldLink;
exit;
end;
RemoveLink(APackage);
RemoveLink(APackage,false);
end;
// add user link
NewLink:=TPackageLink.Create;
@ -806,7 +806,7 @@ begin
Result:=NewLink;
end;
procedure TPackageLinks.RemoveLink(APackageID: TLazPackageID);
procedure TPackageLinks.RemoveLink(APackageID: TLazPackageID; FreeID: boolean);
var
ANode: TAVLTreeNode;
OldLink: TPackageLink;
@ -831,7 +831,8 @@ begin
OldLink.Free;
Modified:=true;
end;
APackageID.Free;
if FreeID then
APackageID.Free;
EndUpdate;
end;

View File

@ -3339,7 +3339,7 @@ begin
PkgLink:=PkgLinks.FindLinkWithDependency(Dependency);
if (PkgLink=nil) then break;
if OpenDependencyWithPackageLink(Dependency,PkgLink) then break;
PkgLinks.RemoveLink(PkgLink);
PkgLinks.RemoveLink(PkgLink,true);
until false;
if (Dependency.LoadPackageResult=lprNotFound)
and (Dependency.DefaultFilename<>'') then begin
@ -3360,7 +3360,7 @@ begin
PkgLink:=PkgLinks.AddUserLink(AFilename,Dependency.PackageName);
if (PkgLink<>nil) then begin
if not OpenDependencyWithPackageLink(Dependency,PkgLink) then
PkgLinks.RemoveLink(PkgLink);
PkgLinks.RemoveLink(PkgLink,true);
end;
end;
end;
@ -3377,7 +3377,7 @@ begin
PkgLink:=PkgLinks.AddUserLink(AFilename,Dependency.PackageName);
if (PkgLink<>nil) then begin
if not OpenDependencyWithPackageLink(Dependency,PkgLink) then
PkgLinks.RemoveLink(PkgLink);
PkgLinks.RemoveLink(PkgLink,true);
end;
end;
end;