| [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  |