codetools: linkscanner: UpdateNeeded when scanner used alon

git-svn-id: trunk@41147 -
This commit is contained in:
mattias 2013-05-12 09:15:26 +00:00
parent 2dd48ee614
commit 160f654e02

View File

@ -2155,59 +2155,64 @@ begin
exit; exit;
end; end;
end else begin end else begin
CurSourcesChangeStep:=0; CurSourcesChangeStep:=1;
CurFilesChangeStep:=0; CurFilesChangeStep:=1;
CurInitValuesChangeStep:=0; CurInitValuesChangeStep:=1;
end; end;
// check initvalues // check initvalues
if Assigned(FOnGetInitValues) and (FGlobalInitValuesChangeStep<>CurInitValuesChangeStep) if FGlobalInitValuesChangeStep<>CurInitValuesChangeStep then begin
then begin
FGlobalInitValuesChangeStep:=CurInitValuesChangeStep; FGlobalInitValuesChangeStep:=CurInitValuesChangeStep;
NewInitValues:=FOnGetInitValues(Self,Code,NewInitValuesChangeStep); if Assigned(FOnGetInitValues) then begin
if (NewInitValues<>nil) NewInitValues:=FOnGetInitValues(Self,Code,NewInitValuesChangeStep);
and (NewInitValuesChangeStep<>FInitValuesChangeStep) if (NewInitValues<>nil)
and (not FInitValues.Equals(NewInitValues)) then begin and (NewInitValuesChangeStep<>FInitValuesChangeStep)
{$IFDEF VerboseUpdateNeeded} and (not FInitValues.Equals(NewInitValues)) then begin
DebugLn(['TLinkScanner.UpdateNeeded because InitValues changed ',MainFilename]);
{$ENDIF}
Include(FStates,lssInitValuesChanged);
exit;
end;
end;
// check all used codebuffers
if Assigned(FOnGetSource) and (FGlobalSourcesChangeStep<>CurSourcesChangeStep)
then begin
FGlobalSourcesChangeStep:=CurSourcesChangeStep;
for i:=0 to FSourceChangeSteps.Count-1 do begin
SrcChange:=PSourceChangeStep(FSourceChangeSteps[i]);
SrcLog:=FOnGetSource(Self,SrcChange^.Code);
//debugln(['TLinkScanner.UpdateNeeded ',ExtractFilename(MainFilename),' i=',i,' File=',FOnGetFileName(Self,SrcLog),' Last=',SrcChange^.ChangeStep,' Now=',SrcLog.ChangeStep]);
if SrcChange^.ChangeStep<>SrcLog.ChangeStep then begin
{$IFDEF VerboseUpdateNeeded} {$IFDEF VerboseUpdateNeeded}
DebugLn(['TLinkScanner.UpdateNeeded because source buffer changed: ',OnGetFileName(Self,SrcLog),' MainFilename=',MainFilename]); DebugLn(['TLinkScanner.UpdateNeeded because InitValues changed ',MainFilename]);
{$ENDIF} {$ENDIF}
Include(FStates,lssSourcesChanged); Include(FStates,lssInitValuesChanged);
exit; exit;
end; end;
end; end;
end; end;
// check all used codebuffers
if FGlobalSourcesChangeStep<>CurSourcesChangeStep then begin
FGlobalSourcesChangeStep:=CurSourcesChangeStep;
if Assigned(FOnGetSource) then begin
for i:=0 to FSourceChangeSteps.Count-1 do begin
SrcChange:=PSourceChangeStep(FSourceChangeSteps[i]);
SrcLog:=FOnGetSource(Self,SrcChange^.Code);
//debugln(['TLinkScanner.UpdateNeeded ',ExtractFilename(MainFilename),' i=',i,' File=',FOnGetFileName(Self,SrcLog),' Last=',SrcChange^.ChangeStep,' Now=',SrcLog.ChangeStep]);
if SrcChange^.ChangeStep<>SrcLog.ChangeStep then begin
{$IFDEF VerboseUpdateNeeded}
DebugLn(['TLinkScanner.UpdateNeeded because source buffer changed: ',OnGetFileName(Self,SrcLog),' MainFilename=',MainFilename]);
{$ENDIF}
Include(FStates,lssSourcesChanged);
exit;
end;
end;
end;
end;
// check all file dates // check all file dates
if CheckFilesOnDisk and Assigned(FOnGetSource) if CheckFilesOnDisk then begin
and (FGlobalFilesChangeStep<>CurFilesChangeStep) then begin if FGlobalFilesChangeStep<>CurFilesChangeStep then begin
// if files changed on disk, reload them FGlobalFilesChangeStep:=CurFilesChangeStep;
FGlobalFilesChangeStep:=CurFilesChangeStep; if Assigned(FOnGetSource) then begin
for i:=0 to FSourceChangeSteps.Count-1 do begin // if files changed on disk, reload them
SrcChange:=PSourceChangeStep(FSourceChangeSteps[i]); for i:=0 to FSourceChangeSteps.Count-1 do begin
SrcLog:=FOnGetSource(Self,SrcChange^.Code); SrcChange:=PSourceChangeStep(FSourceChangeSteps[i]);
if FOnCheckFileOnDisk(SrcLog) then begin SrcLog:=FOnGetSource(Self,SrcChange^.Code);
{$IFDEF VerboseUpdateNeeded} if FOnCheckFileOnDisk(SrcLog) then begin
DebugLn(['TLinkScanner.UpdateNeeded because file on disk changed: ',OnGetFileName(Self,SrcLog),' MainFilename=',MainFilename]); {$IFDEF VerboseUpdateNeeded}
{$ENDIF} DebugLn(['TLinkScanner.UpdateNeeded because file on disk changed: ',OnGetFileName(Self,SrcLog),' MainFilename=',MainFilename]);
Include(FStates,lssFilesChanged); {$ENDIF}
exit; Include(FStates,lssFilesChanged);
exit;
end;
end;
end; end;
end; end;
end; end;