[fpc-devel] Twice stored record RTTI data

Maciej Izak hnb.code at gmail.com
Wed Mar 2 00:48:03 CET 2016


2016-03-02 0:16 GMT+01:00 Sven Barth <pascaldragon at googlemail.com>:

> This is by design and your patch would break existing code anyway.
>
> The init RTTI contains merely those fields that need initialization
> (namely interfaces, strings and dynamic arrays) and which is used for the
> fpc_initialize(), fpc_finalize() and fpc_assign() helpers while the full
> RTTI contains all typed, even those that don't need initialization. Please
> note that not all types need a separate init RTTI (e.g. classes), but
> records do (this is determined by needs_separate_init_rtti that each def
> overrides).
>
my patch was created only on Michael request. ;) thanks for clarification,
that makes sense, it works as expected (my second email as a proof). As far
as i understand is possible to divide record RTTI data on INIT table and
RTTI table.

INIT table:
-record size
-managed fields
-management operators (done in my branch, not committed yet)

RTTI table (eventually TODO):
-attributes
-other operators
-other info about properties and methods etc.

RTTI table in most of cases includes also most of INIT table data (probably
full copy).
-- 
Best regards,
Maciej Izak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20160302/8df8d01c/attachment.html>


More information about the fpc-devel mailing list