Преглед изворни кода

* far code support for the internal type

git-svn-id: trunk@24845 -
nickysn пре 12 година
родитељ
комит
093b87f50d
1 измењених фајлова са 7 додато и 0 уклоњено
  1. 7 0
      compiler/psystem.pas

+ 7 - 0
compiler/psystem.pas

@@ -464,7 +464,14 @@ implementation
             addtype('$vtblarray',vmtarraytype);
             addtype('$vtblarray',vmtarraytype);
             { Add a type for methodpointers }
             { Add a type for methodpointers }
             hrecst:=trecordsymtable.create('',1);
             hrecst:=trecordsymtable.create('',1);
+{$ifdef i8086}
+            if current_settings.x86memorymodel in x86_far_code_models then
+              addfield(hrecst,tfieldvarsym.create('$proc',vs_value,voidfarpointertype,[]))
+            else
+              addfield(hrecst,tfieldvarsym.create('$proc',vs_value,voidnearpointertype,[]));
+{$else i8086}
             addfield(hrecst,tfieldvarsym.create('$proc',vs_value,voidpointertype,[]));
             addfield(hrecst,tfieldvarsym.create('$proc',vs_value,voidpointertype,[]));
+{$endif i8086}
             addfield(hrecst,tfieldvarsym.create('$self',vs_value,voidpointertype,[]));
             addfield(hrecst,tfieldvarsym.create('$self',vs_value,voidpointertype,[]));
             methodpointertype:=trecorddef.create('',hrecst);
             methodpointertype:=trecorddef.create('',hrecst);
             addtype('$methodpointer',methodpointertype);
             addtype('$methodpointer',methodpointertype);