[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] Reference for unit 'System' (#rtl)

TVmt

Virtual method table layout

Declaration

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;

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.

See also

PVmt

  

Pointer to TVMT record

The latest version of this document can be found at lazarus-ccr.sourceforge.net.