From 44404214d370d226428e315da946d41ccf141507 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sun, 25 Nov 2018 20:07:00 +0100 Subject: Keep source file entry in design file to avoid searching the file. --- src/ghdldrv/ghdllocal.adb | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/ghdldrv/ghdllocal.adb') diff --git a/src/ghdldrv/ghdllocal.adb b/src/ghdldrv/ghdllocal.adb index 2f7cf1f54..1c3059b73 100644 --- a/src/ghdldrv/ghdllocal.adb +++ b/src/ghdldrv/ghdllocal.adb @@ -1218,8 +1218,12 @@ package body Ghdllocal is File := Get_Design_File_Chain (Lib); while File /= Null_Iir loop Next_File := Get_Chain (File); - Fe := Read_Source_File (Get_Design_File_Directory (File), - Get_Design_File_Filename (File)); + Fe := Get_Design_File_Source (File); + if Fe = No_Source_File_Entry then + Fe := Read_Source_File (Get_Design_File_Directory (File), + Get_Design_File_Filename (File)); + Set_Design_File_Source (File, Fe); + end if; if Fe = No_Source_File_Entry then -- FIXME: should remove all the design file from the library. null; @@ -1230,6 +1234,7 @@ package body Ghdllocal is -- Extract libraries. -- Note: we can't parse it only, since we need to keep the -- date. + Set_Design_File_Source (File, Fe); Unit := Get_First_Design_Unit (File); while Unit /= Null_Iir loop Sem_Lib.Load_Parse_Design_Unit (Unit, Null_Iir); @@ -1427,8 +1432,12 @@ package body Ghdllocal is Fe : Source_File_Entry; begin -- 2) file has been modified. - Fe := Read_Source_File (Get_Design_File_Directory (File), - Get_Design_File_Filename (File)); + Fe := Get_Design_File_Source (File); + if Fe = No_Source_File_Entry then + Fe := Read_Source_File (Get_Design_File_Directory (File), + Get_Design_File_Filename (File)); + Set_Design_File_Source (File, Fe); + end if; if not Is_Eq (Get_File_Checksum (Fe), Get_File_Checksum (File)) then -- cgit v1.2.3