Bladeren bron

* 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 -

nickysn 7 jaren geleden
bovenliggende
commit
188e9ff64a
1 gewijzigde bestanden met toevoegingen van 11 en 11 verwijderingen
  1. 11 11
      compiler/owomflib.pas

+ 11 - 11
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;