From cb4fe65c5f244046e7522c4838e6506da3886929 Mon Sep 17 00:00:00 2001 From: mattias Date: Mon, 4 Oct 2010 09:15:34 +0000 Subject: [PATCH] codetools: fpc caches: added invalid stamp constant git-svn-id: trunk@27561 - --- components/codetools/definetemplates.pas | 43 ++++++++++++------------ components/codetools/fileprocs.pas | 22 ++++++++++++ 2 files changed, 44 insertions(+), 21 deletions(-) diff --git a/components/codetools/definetemplates.pas b/components/codetools/definetemplates.pas index 434e0b6445..920683f6bb 100644 --- a/components/codetools/definetemplates.pas +++ b/components/codetools/definetemplates.pas @@ -735,6 +735,7 @@ type FChangeStamp: integer; public Directory: string; + Valid: boolean; Files: TStringList; Caches: TFPCSourceCaches; constructor Create(AOwner: TComponent); override; @@ -7138,6 +7139,7 @@ end; constructor TFPCTargetConfigCache.Create(AOwner: TComponent); begin + FChangeStamp:=CTInvalidChangeStamp; inherited Create(AOwner); ConfigFiles:=TFPCConfigFileStateList.Create; if Owner is TFPCTargetConfigCaches then @@ -7573,10 +7575,7 @@ end; procedure TFPCTargetConfigCache.IncreaseChangeStamp; begin - if FChangeStampnil then Caches.IncreaseChangeStamp; end; @@ -7704,6 +7703,7 @@ end; constructor TFPCTargetConfigCaches.Create(AOwner: TComponent); begin + FChangeStamp:=CTInvalidChangeStamp; inherited Create(AOwner); fItems:=TAVLTree.Create(@CompareFPCTargetConfigCacheItems); end; @@ -7830,10 +7830,7 @@ end; procedure TFPCTargetConfigCaches.IncreaseChangeStamp; begin - if FChangeStampCache.Valid then exit; if Directory<>Cache.Directory then exit; if not Files.Equals(Cache.Files) then exit; Result:=true; @@ -8037,6 +8039,7 @@ begin Clear; List:=nil; try + Valid:=XMLConfig.GetValue(Path+'Valid',true); Directory:=XMLConfig.GetValue(Path+'Directory',''); List:=TStringList.Create; List.StrictDelimiter:=true; @@ -8058,6 +8061,7 @@ var begin List:=nil; try + XMLConfig.SetDeleteValue(Path+'Valid',Valid,true); XMLConfig.SetDeleteValue(Path+'Directory',Directory,''); if Files<>nil then begin List:=Compress1FileList(Files); @@ -8099,16 +8103,20 @@ end; procedure TFPCSourceCache.Update(const OnProgress: TDefinePoolProgress); var OldFiles: TStrings; + OldValid: Boolean; begin OldFiles:=Files; Files:=nil; + OldValid:=Valid; try if (Directory<>'') then begin debugln(['TFPCSourceCache.Update ',Directory,' ...']); Files:=GatherFiles(Directory,'{.svn,CVS}', '{*.pas,*.pp,*.p,*.inc,Makefile.fpc}',OnProgress); end; - if ((Files=nil)<>(OldFiles=nil)) + Valid:=true; + if (Valid<>OldValid) + or ((Files=nil)<>(OldFiles=nil)) or ((Files<>nil) and (Files.Text<>OldFiles.Text)) then begin IncreaseChangeStamp; debugln(['TFPCSourceCache.Update ',Directory,' has changed.']); @@ -8120,10 +8128,7 @@ end; procedure TFPCSourceCache.IncreaseChangeStamp; begin - if FChangeStampnil then Caches.IncreaseChangeStamp; end; @@ -8132,6 +8137,7 @@ end; constructor TFPCSourceCaches.Create(AOwner: TComponent); begin + FChangeStamp:=CTInvalidChangeStamp; inherited Create(AOwner); fItems:=TAVLTree.Create(@CompareFPCSourceCacheItems); end; @@ -8259,10 +8265,7 @@ end; procedure TFPCSourceCaches.IncreaseChangeStamp; begin - if FChangeStamp