TVmt¶
Virtual method table layout.
Declaration¶
Source position: objpash.inc line 158
type
TVmt = record
vInstanceSize: SizeInt = Int64;
vInstanceSize2: SizeInt = Int64;
vParentRef: PPVmt = ^PVmt;
vClassName: PShortString = ^ShortString;
vDynamicTable: Pointer;
vMethodTable: Pointer;
vFieldTable: Pointer;
vTypeInfo: Pointer;
vInitTable: Pointer;
vAutoTable: Pointer;
vIntfTable: pinterfacetable = ^tinterfacetable;
vMsgStrPtr: pstringmessagetable = ^TStringMessageTable;
vDestroy: CodePointer = Pointer;
vNewInstance: CodePointer = Pointer;
vFreeInstance: CodePointer = Pointer;
vSafeCallException: CodePointer = Pointer;
vDefaultHandler: CodePointer = Pointer;
vAfterConstruction: CodePointer = Pointer;
vBeforeDestruction: CodePointer = Pointer;
vDefaultHandlerStr: CodePointer = Pointer;
vDispatch: CodePointer = Pointer;
vDispatchStr: CodePointer = Pointer;
vEquals: CodePointer = Pointer;
vGetHashCode: CodePointer = Pointer;
vToString: CodePointer = Pointer;
property vParent: PVmt; {r}
end;
Description¶
TVMT is a record describing the VMT of a class. It's various fields represent the available information in the VMT, as far as it is common to all classes.