[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] |
Virtual method table layout
Source position: objpash.inc line 100
type TVmt = record |
||
vInstanceSize: SizeInt; |
|
Class instance size |
vInstanceSize2: SizeInt; |
|
Duplicate of class instance size (should equal -vInstanceSize) |
vParent: PVmt; |
|
Pointer to parent VMT |
vClassName: PShortString; |
|
Pointer to shortstring with classname |
vDynamicTable: Pointer; |
|
Pointer to table with dynamic methods. |
vMethodTable: Pointer; |
|
Pointer to table with virtual methods. |
vFieldTable: Pointer; |
|
Pointer to table with field information |
vTypeInfo: Pointer; |
|
Pointer to class type info record. |
vInitTable: Pointer; |
|
Pointer to initialization information |
vAutoTable: Pointer; |
|
Pointer to Automation interfaces table |
vIntfTable: pinterfacetable; |
|
Pointer to interfaces table |
vMsgStrPtr: pstringmessagetable; |
|
Pointer to string message dispatch table |
vDestroy: Pointer; |
|
Pointer to destructor |
vNewInstance: Pointer; |
|
Pointer to NewInstance method |
vFreeInstance: Pointer; |
|
Pointer to FreeInstance method |
vSafeCallException: Pointer; |
|
? |
vDefaultHandler: Pointer; |
|
Pointer to default message handler |
vAfterConstruction: Pointer; |
|
Pointer to afterconstruction method. |
vBeforeDestruction: Pointer; |
|
Pointer to beforeconstruction method. |
vDefaultHandlerStr: Pointer; |
|
Pointer to default string message handler |
vDispatch: Pointer; |
|
Dispatch method pointer |
vDispatchStr: Pointer; |
|
DispatchStr method pointer |
vEquals: Pointer; |
|
Equals method pointer |
vGetHashCode: Pointer; |
|
GetHashCode method pointer |
vToString: Pointer; |
|
ToString method pointer |
end; |
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.
|
Pointer to TVMT record |
lazarus-ccr.sourceforge.net |