mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 17:59:16 +02:00
codetools: linkscanner: UpdateNeeded when scanner used alon
git-svn-id: trunk@41147 -
This commit is contained in:
parent
2dd48ee614
commit
160f654e02
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user