From b44b0d5c00ea4847d171a58842e699639b8b2b4e Mon Sep 17 00:00:00 2001 From: mattias Date: Mon, 10 Mar 2008 16:44:20 +0000 Subject: [PATCH] IDE: fixed loading dependency list keeping order, bug #10967 git-svn-id: trunk@14489 - --- packager/packagedefs.pas | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/packager/packagedefs.pas b/packager/packagedefs.pas index fe2abc05a9..dd8b253619 100644 --- a/packager/packagedefs.pas +++ b/packager/packagedefs.pas @@ -311,6 +311,8 @@ type function PrevRequiresDependency: TPkgDependency; procedure AddToList(var FirstDependency: TPkgDependency; ListType: TPkgDependencyList); + procedure AddToEndOfList(var LastDependency: TPkgDependency; + ListType: TPkgDependencyList); procedure RemoveFromList(var FirstDependency: TPkgDependency; ListType: TPkgDependencyList); procedure MoveUpInList(var FirstDependency: TPkgDependency; @@ -985,6 +987,7 @@ var NewCount: Integer; List: TFPList; FileVersion: Integer; + Last: TPkgDependency; begin FileVersion:=XMLConfig.GetValue(ThePath+'Version',0); NewCount:=XMLConfig.GetValue(ThePath+'Count',0); @@ -1001,9 +1004,15 @@ begin end; if SortList then SortDependencyList(List); + Last:=First; + if Last<>nil then + while Last.NextDependency[ListType]<>nil do + Last:=Last.NextDependency[ListType]; for i:=0 to List.Count-1 do begin - TPkgDependency(List[i]).AddToList(First,ListType); - TPkgDependency(List[i]).Owner:=Owner; + TPkgDependency(List[i]).AddToEndOfList(Last,ListType); + if First=nil then + First:=Last; + PkgDependency.Owner:=Owner; end; List.Free; end; @@ -1856,6 +1865,16 @@ begin NextDependency[ListType].PrevDependency[ListType]:=Self; end; +procedure TPkgDependency.AddToEndOfList(var LastDependency: TPkgDependency; + ListType: TPkgDependencyList); +begin + PrevDependency[ListType]:=LastDependency; + LastDependency:=Self; + NextDependency[ListType]:=nil; + if PrevDependency[ListType]<>nil then + PrevDependency[ListType].NextDependency[ListType]:=Self; +end; + procedure TPkgDependency.RemoveFromList(var FirstDependency: TPkgDependency; ListType: TPkgDependencyList); begin