浏览代码

+ implemented TOmfRecord_EXTDEF.DecodeFrom

git-svn-id: trunk@30584 -
nickysn 10 年之前
父节点
当前提交
cea67320bf
共有 1 个文件被更改,包括 15 次插入2 次删除
  1. 15 2
      compiler/omfbase.pas

+ 15 - 2
compiler/omfbase.pas

@@ -972,9 +972,22 @@ implementation
   { TOmfRecord_EXTDEF }
 
   procedure TOmfRecord_EXTDEF.DecodeFrom(RawRecord: TOmfRawRecord);
+    var
+      NextOfs: Integer;
+      Name: string;
+      TypeIndex: Integer;
+      ExtName: TOmfExternalNameElement;
     begin
-      {TODO: implement}
-      internalerror(2015040101);
+      if RawRecord.RecordType<>RT_EXTDEF then
+        internalerror(2015040301);
+      NextOfs:=0;
+      while NextOfs<(RawRecord.RecordLength-1) do
+        begin
+          NextOfs:=RawRecord.ReadStringAt(NextOfs,Name);
+          NextOfs:=RawRecord.ReadIndexedRef(NextOfs,TypeIndex);
+          ExtName:=TOmfExternalNameElement.Create(ExternalNames,Name);
+          ExtName.TypeIndex:=TypeIndex;
+        end;
     end;
 
   procedure TOmfRecord_EXTDEF.EncodeTo(RawRecord: TOmfRawRecord);