Am 20.10.2018 um 20:09 schrieb Marc Santhoff:
Hi,

from testing a while ago I remember the following:

The memory used by a class instance is composed of
1. the size ".instanceSize()" gives back
2. the memory used by other variables and maybe class instances referenced
    by pointers and owned by the instance in question
3. strings are (to be) included in 2., string types are in fact references aka
    pointers

The second clause is sort of "by definition", but I do define like that in
this case.

Is that listing correct and complete?
The size InstanceSize() returns is the pointer to the VMT plus the size of any field in the class or any of its parent classes as if it would be a record (keep in mind that class references are merely pointers, so a class having another as a field is merely a pointer, not its InstanceSize(), the same is true for e.g. Ansi-/UnicodeString).

Regards,
Sven
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to