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

* use voidcodepointertype.size in tobjectdef.vmtmethodoffset, avoid ifdef i8086

git-svn-id: trunk@27538 -
nickysn пре 11 година
родитељ
комит
8d9fda9264
1 измењених фајлова са 4 додато и 14 уклоњено
  1. 4 14
      compiler/symdef.pas

+ 4 - 14
compiler/symdef.pas

@@ -6278,37 +6278,27 @@ implementation
 
 
 
 
     function tobjectdef.vmtmethodoffset(index:longint):longint;
     function tobjectdef.vmtmethodoffset(index:longint):longint;
-      var
-        codeptrsize: Integer;
       begin
       begin
-{$ifdef i8086}
-        if current_settings.x86memorymodel in x86_far_code_models then
-          codeptrsize:=4
-        else
-          codeptrsize:=2;
-{$else i8086}
-        codeptrsize:=sizeof(pint);
-{$endif i8086}
         { for offset of methods for classes, see rtl/inc/objpash.inc }
         { for offset of methods for classes, see rtl/inc/objpash.inc }
         case objecttype of
         case objecttype of
         odt_class:
         odt_class:
           { the +2*sizeof(pint) is size and -size }
           { the +2*sizeof(pint) is size and -size }
-          vmtmethodoffset:=index*codeptrsize+10*sizeof(pint)+2*sizeof(pint);
+          vmtmethodoffset:=index*voidcodepointertype.size+10*sizeof(pint)+2*sizeof(pint);
         odt_helper,
         odt_helper,
         odt_objcclass,
         odt_objcclass,
         odt_objcprotocol:
         odt_objcprotocol:
           vmtmethodoffset:=0;
           vmtmethodoffset:=0;
         odt_interfacecom,odt_interfacecorba,odt_dispinterface:
         odt_interfacecom,odt_interfacecorba,odt_dispinterface:
-          vmtmethodoffset:=index*codeptrsize;
+          vmtmethodoffset:=index*voidcodepointertype.size;
         odt_javaclass,
         odt_javaclass,
         odt_interfacejava:
         odt_interfacejava:
           { invalid }
           { invalid }
           vmtmethodoffset:=-1;
           vmtmethodoffset:=-1;
         else
         else
 {$ifdef WITHDMT}
 {$ifdef WITHDMT}
-          vmtmethodoffset:=index*codeptrsize+4*sizeof(pint);
+          vmtmethodoffset:=index*voidcodepointertype.size+4*sizeof(pint);
 {$else WITHDMT}
 {$else WITHDMT}
-          vmtmethodoffset:=index*codeptrsize+3*sizeof(pint);
+          vmtmethodoffset:=index*voidcodepointertype.size+3*sizeof(pint);
 {$endif WITHDMT}
 {$endif WITHDMT}
         end;
         end;
       end;
       end;