On 27/05/10 23:13, Jonas Maebe wrote:
On 27 May 2010, at 23:31, Yann Bat wrote:

The compiler always adds a VMT if an object has a constructor or destructor. 
The reason is that the VMT also contains the instance size, which is used by 
the constructor helper to allocate the required amount of memory.
Ok but why a different behaviour between [fpc | objfpc] mode and [tp |
delphi] mode ?
It is allowed in Delphi and TP because they allow declaring typed constants of 
objects. I don't remember why it was disabled in the FPC modes, but that 
happened a long time ago (before the move from cvs to svn). Maybe someone else 
does.

Definitely TP-style objects did not have a VMT unless you declared a virtual method, in TP. And a destructor was only virtual if it was declared virtual. Hence typed constant objects could be possible. Presumably FPC decided compatibility with this feature was not desirable?

FP

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to