codetools: fixed close/reopen file

git-svn-id: trunk@16797 -
This commit is contained in:
mattias 2008-09-29 19:08:14 +00:00
parent 28747c0ba0
commit 1d446abc80

View File

@ -482,7 +482,7 @@ function TCodeCache.OnScannerCheckFileOnDisk(Code: pointer): boolean;
var Buf: TCodeBuffer;
begin
Buf:=TCodeBuffer(Code);
//DebugLn('OnScannerCheckFileOnDisk A ',Buf.Filename,' AutoRev=',Buf.AutoUpdateFromDisk,' WriteLock=',GlobalWriteLockIsSet,' DiskChg=',Buf.FileOnDiskHasChanged);
//DebugLn(['OnScannerCheckFileOnDisk A ',Buf.Filename,' AutoRev=',Buf.AutoRevertFromDisk,' WriteLock=',GlobalWriteLockIsSet,' DiskChg=',Buf.FileOnDiskHasChanged,' IsDeleted=',Buf.IsDeleted]);
if Buf.AutoRevertFromDisk or Buf.IsDeleted then begin
if GlobalWriteLockIsSet then begin
if GlobalWriteLockStep<>Buf.GlobalWriteLockStepOnLastLoad then begin
@ -497,6 +497,7 @@ begin
end else begin
//DebugLn(['TCodeCache.OnScannerCheckFileOnDisk AutoRevertFromDisk=',Buf.AutoRevertFromDisk,' ',Buf.Filename]);
end;
//if buf.IsDeleted then debugln(['TCodeCache.OnScannerCheckFileOnDisk ',Buf.Filename,' still deleted']);
Result:=true;
end;
@ -821,7 +822,7 @@ end;
procedure TCodeBuffer.Clear;
begin
FIsDeleted:=false;
fIsDeleted:=false;
FLoadDateValid:=false;
inherited Clear;
end;
@ -846,7 +847,7 @@ begin
Result:=inherited LoadFromFile(AFilename);
if Result then MakeFileDateValid;
end;
if Result then FIsDeleted:=false;
if Result then IsDeleted:=false;
end else
Result:=false;
end;
@ -857,7 +858,7 @@ begin
//DebugLn('TCodeBuffer.SaveToFile ',Filename,' -> ',AFilename,' ',Result);
if CompareFilenames(AFilename,Filename)=0 then begin
if Result then begin
FIsDeleted:=false;
IsDeleted:=false;
MakeFileDateValid;
end;
end;
@ -921,9 +922,11 @@ end;
procedure TCodeBuffer.SetIsDeleted(const NewValue: boolean);
begin
if FIsDeleted=NewValue then exit;
//debugln(['TCodeBuffer.SetIsDeleted ',Filename,' ',NewValue]);
FIsDeleted:=NewValue;
if FIsDeleted then begin
Clear;
FIsDeleted:=true;
FLoadDateValid:=false;
//DebugLn(['TCodeBuffer.SetIsDeleted ',Filename,' ',FileNeedsUpdate]);
end;