diff --git a/compiler/ogomf.pas b/compiler/ogomf.pas index 321c585712..f8e303b888 100644 --- a/compiler/ogomf.pas +++ b/compiler/ogomf.pas @@ -121,7 +121,12 @@ interface TOmfObjInput = class(TObjInput) private + FLNames: TOmfOrderedNameCollection; FRawRecord: TOmfRawRecord; + + function ReadLNames(RawRec: TOmfRawRecord): Boolean; + + property LNames: TOmfOrderedNameCollection read FLNames; public constructor create;override; destructor destroy;override; @@ -890,16 +895,30 @@ implementation TOmfObjInput ****************************************************************************} + function TOmfObjInput.ReadLNames(RawRec: TOmfRawRecord): Boolean; + var + LNamesRec: TOmfRecord_LNAMES; + begin + Result:=False; + LNamesRec:=TOmfRecord_LNAMES.Create; + LNamesRec.Names:=LNames; + LNamesRec.DecodeFrom(RawRec); + LNamesRec.Free; + Result:=True; + end; + constructor TOmfObjInput.create; begin inherited create; cobjdata:=TOmfObjData; + FLNames:=TOmfOrderedNameCollection.Create; FRawRecord:=TOmfRawRecord.Create; end; destructor TOmfObjInput.destroy; begin FRawRecord.Free; + FLNames.Free; inherited destroy; end; @@ -923,6 +942,7 @@ implementation InputFileName:=AReader.FileName; objdata:=CObjData.Create(InputFileName); result:=false; + LNames.Clear; FRawRecord.ReadFrom(FReader); if not FRawRecord.VerifyChecksumByte then begin @@ -943,9 +963,8 @@ implementation end; case FRawRecord.RecordType of RT_LNAMES: - begin - {todo} - end; + if not ReadLNames(FRawRecord) then + exit; RT_SEGDEF,RT_SEGDEF32: begin {todo}