Parcourir la source

Fix startup problem in Lazarus if compiled with ARC-branch compiler.

rtl/inc/objpash.inc:
  + new constant for the offset to the VMT field for the Reference Count offset
  * correctly calculate the first offset of the virtual methods of the VMT

git-svn-id: branches/svenbarth/arc@28962 -
svenbarth il y a 10 ans
Parent
commit
af7532fd67
1 fichiers modifiés avec 5 ajouts et 0 suppressions
  1. 5 0
      rtl/inc/objpash.inc

+ 5 - 0
rtl/inc/objpash.inc

@@ -44,8 +44,13 @@
        vmtAutoTable            = vmtParent+sizeof(pointer)*7;
        vmtAutoTable            = vmtParent+sizeof(pointer)*7;
        vmtIntfTable            = vmtParent+sizeof(pointer)*8;
        vmtIntfTable            = vmtParent+sizeof(pointer)*8;
        vmtMsgStrPtr            = vmtParent+sizeof(pointer)*9;
        vmtMsgStrPtr            = vmtParent+sizeof(pointer)*9;
+       vmtRefCountOfs          = vmtParent+sizeof(pointer)*10;
        { methods }
        { methods }
+       {$ifdef ver2_6}
        vmtMethodStart          = vmtParent+sizeof(pointer)*10;
        vmtMethodStart          = vmtParent+sizeof(pointer)*10;
+       {$else}
+       vmtMethodStart          = vmtParent+sizeof(pointer)*11;
+       {$endif}
        vmtDestroy              = vmtMethodStart;
        vmtDestroy              = vmtMethodStart;
        vmtNewInstance          = vmtMethodStart+sizeof(codepointer);
        vmtNewInstance          = vmtMethodStart+sizeof(codepointer);
        vmtFreeInstance         = vmtMethodStart+sizeof(codepointer)*2;
        vmtFreeInstance         = vmtMethodStart+sizeof(codepointer)*2;