From 188e9ff64a680ce99c990051a0133125dc4d36dd Mon Sep 17 00:00:00 2001 From: nickysn Date: Fri, 8 Jun 2018 14:21:18 +0000 Subject: [PATCH] * only read the first OMF record in TOmfLibObjectWriter.closefile, since we no longer copy the entire file there, so we parse the file only to get the module name, and the THEADR record should always be the first record in the OMF file. git-svn-id: trunk@39198 - --- compiler/owomflib.pas | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/compiler/owomflib.pas b/compiler/owomflib.pas index e7aff2f2f4..aafea97567 100644 --- a/compiler/owomflib.pas +++ b/compiler/owomflib.pas @@ -227,17 +227,17 @@ implementation begin FCurrentModule.ObjData.seek(0); RawRec:=TOmfRawRecord.Create; - repeat - RawRec.ReadFrom(FCurrentModule.ObjData); - if RawRec.RecordType=RT_THEADR then - begin - ObjHeader:=TOmfRecord_THEADR.Create; - ObjHeader.DecodeFrom(RawRec); - { create a dictionary entry with the module name } - TOmfLibDictionaryEntry.Create(FDictionary,ModName2DictEntry(ObjHeader.ModuleName),FCurrentModuleIndex); - ObjHeader.Free; - end; - until RawRec.RecordType in [RT_MODEND,RT_MODEND32]; + RawRec.ReadFrom(FCurrentModule.ObjData); + if RawRec.RecordType<>RT_THEADR then + begin + RawRec.Free; + InternalError(2018060801); + end; + ObjHeader:=TOmfRecord_THEADR.Create; + ObjHeader.DecodeFrom(RawRec); + { create a dictionary entry with the module name } + TOmfLibDictionaryEntry.Create(FDictionary,ModName2DictEntry(ObjHeader.ModuleName),FCurrentModuleIndex); + ObjHeader.Free; RawRec.Free; fobjsize:=0; end;