* move properties and functions of TVMT to the end of the record, so that one only needs to adjust the total entry count TVMTBuilder.generate_vmt_def()

git-svn-id: trunk@34223 -
This commit is contained in:
svenbarth 2016-07-29 13:54:36 +00:00
parent a2c0dae8a9
commit 61551cbb0f
2 changed files with 5 additions and 6 deletions

View File

@ -843,7 +843,7 @@ implementation
including its virtual methods. We only want the non-method including its virtual methods. We only want the non-method
fields, as the methods will be added automatically based on fields, as the methods will be added automatically based on
the VMT we generated here only add the 12 first fields } the VMT we generated here only add the 12 first fields }
for i:=0 to 13 do for i:=0 to 11 do
begin begin
sym:=tsym(trecorddef(systemvmt).symtable.SymList[i]); sym:=tsym(trecorddef(systemvmt).symtable.SymList[i]);
if sym.typ in [procsym,propertysym] then if sym.typ in [procsym,propertysym] then

View File

@ -99,11 +99,6 @@
PVmt = ^TVmt; PVmt = ^TVmt;
PPVmt = ^PVmt; PPVmt = ^PVmt;
TVmt = record TVmt = record
private
function GetvParent: PVmt; inline;
public
property vParent: PVmt read GetvParent;
public
vInstanceSize: SizeInt; vInstanceSize: SizeInt;
vInstanceSize2: SizeInt; vInstanceSize2: SizeInt;
vParentRef: {$ifdef VER3_0}PVmt{$else}PPVmt{$endif}; vParentRef: {$ifdef VER3_0}PVmt{$else}PPVmt{$endif};
@ -129,6 +124,10 @@
vEquals: CodePointer; vEquals: CodePointer;
vGetHashCode: CodePointer; vGetHashCode: CodePointer;
vToString: CodePointer; vToString: CodePointer;
private
function GetvParent: PVmt; inline;
public
property vParent: PVmt read GetvParent;
end; end;
PGuid = ^TGuid; PGuid = ^TGuid;