[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] |
Virtual method table layout
Source position: objpash.inc line 101
type TVmt = record |
||
public |
||
vInstanceSize: SizeInt; |
|
Class instance size |
vInstanceSize2: SizeInt; |
|
Duplicate of class instance size (should equal -vInstanceSize) |
vParentRef: PPVmt; |
|
Parent reference |
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: CodePointer; |
|
Pointer to destructor |
vNewInstance: CodePointer; |
|
Pointer to NewInstance method |
vFreeInstance: CodePointer; |
|
Pointer to FreeInstance method |
vSafeCallException: CodePointer; |
|
? |
vDefaultHandler: CodePointer; |
|
Pointer to default message handler |
vAfterConstruction: CodePointer; |
|
Pointer to afterconstruction method. |
vBeforeDestruction: CodePointer; |
|
Pointer to beforeconstruction method. |
vDefaultHandlerStr: CodePointer; |
|
Pointer to default string message handler |
vDispatch: CodePointer; |
|
Dispatch method pointer |
vDispatchStr: CodePointer; |
|
DispatchStr method pointer |
vEquals: CodePointer; |
|
Equals method pointer |
vGetHashCode: CodePointer; |
|
GetHashCode method pointer |
vToString: CodePointer; |
|
ToString method pointer |
|
Pointer to parent VMT |
|
|
||
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 |