mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 16:39:19 +02:00
pastojs: load include file from cache
git-svn-id: trunk@40173 -
This commit is contained in:
parent
571094912b
commit
f116d51fd9
@ -2735,10 +2735,10 @@ begin
|
|||||||
begin
|
begin
|
||||||
if FIncludeStack.Count > 0 then
|
if FIncludeStack.Count > 0 then
|
||||||
begin
|
begin
|
||||||
CurSourceFile.{$ifdef pas2js}Destroy{$else}Free{$endif};
|
|
||||||
IncludeStackItem :=
|
IncludeStackItem :=
|
||||||
TIncludeStackItem(FIncludeStack[FIncludeStack.Count - 1]);
|
TIncludeStackItem(FIncludeStack[FIncludeStack.Count - 1]);
|
||||||
FIncludeStack.Delete(FIncludeStack.Count - 1);
|
FIncludeStack.Delete(FIncludeStack.Count - 1);
|
||||||
|
CurSourceFile.{$ifdef pas2js}Destroy{$else}Free{$endif};
|
||||||
FCurSourceFile := IncludeStackItem.SourceFile;
|
FCurSourceFile := IncludeStackItem.SourceFile;
|
||||||
FCurFilename := IncludeStackItem.Filename;
|
FCurFilename := IncludeStackItem.Filename;
|
||||||
FCurToken := IncludeStackItem.Token;
|
FCurToken := IncludeStackItem.Token;
|
||||||
@ -3078,6 +3078,8 @@ end;
|
|||||||
|
|
||||||
procedure TPascalScanner.HandleIncludeFile(Param: String);
|
procedure TPascalScanner.HandleIncludeFile(Param: String);
|
||||||
|
|
||||||
|
var
|
||||||
|
NewSourceFile: TLineReader;
|
||||||
begin
|
begin
|
||||||
if Length(Param)>1 then
|
if Length(Param)>1 then
|
||||||
begin
|
begin
|
||||||
@ -3088,10 +3090,12 @@ begin
|
|||||||
Param:=copy(Param,2,length(Param)-2);
|
Param:=copy(Param,2,length(Param)-2);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
FCurSourceFile := FileResolver.FindIncludeFile(Param);
|
NewSourceFile := FileResolver.FindIncludeFile(Param);
|
||||||
if not Assigned(FCurSourceFile) then
|
if not Assigned(NewSourceFile) then
|
||||||
Error(nErrIncludeFileNotFound, SErrIncludeFileNotFound, [Param]);
|
Error(nErrIncludeFileNotFound, SErrIncludeFileNotFound, [Param]);
|
||||||
|
|
||||||
PushStackItem;
|
PushStackItem;
|
||||||
|
FCurSourceFile:=NewSourceFile;
|
||||||
FCurFilename := Param;
|
FCurFilename := Param;
|
||||||
if FCurSourceFile is TFileLineReader then
|
if FCurSourceFile is TFileLineReader then
|
||||||
FCurFilename := TFileLineReader(FCurSourceFile).Filename; // nicer error messages
|
FCurFilename := TFileLineReader(FCurSourceFile).Filename; // nicer error messages
|
||||||
|
@ -1276,7 +1276,6 @@ begin
|
|||||||
Log.DebugLogWriteLn(PasModule.GetDeclaration(true));
|
Log.DebugLogWriteLn(PasModule.GetDeclaration(true));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
if{$IFDEF HasPas2jsFiler}PCUReader=nil{$ELSE}true{$ENDIF} then
|
if{$IFDEF HasPas2jsFiler}PCUReader=nil{$ELSE}true{$ENDIF} then
|
||||||
begin
|
begin
|
||||||
// read source module (instead of precompiled module)
|
// read source module (instead of precompiled module)
|
||||||
|
@ -1313,7 +1313,7 @@ begin
|
|||||||
Filename:=FindIncludeFileName(aFilename);
|
Filename:=FindIncludeFileName(aFilename);
|
||||||
if Filename='' then exit;
|
if Filename='' then exit;
|
||||||
try
|
try
|
||||||
Result := TFileLineReader.Create(Filename);
|
Result:=FindSourceFile(Filename);
|
||||||
except
|
except
|
||||||
// error is shown in the scanner, which has the context information
|
// error is shown in the scanner, which has the context information
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user