<p>Am 02.03.2016 08:50 schrieb "Maciej Izak" <<a href="mailto:hnb.code@gmail.com">hnb.code@gmail.com</a>>:<br>
><br>
><br>
> 2016-03-02 7:56 GMT+01:00 Sven Barth <<a href="mailto:pascaldragon@googlemail.com">pascaldragon@googlemail.com</a>>:<br>
>><br>
>> IT table is a subset that only includes managed fields while the RTTI table also contains unmanaged ones. This way the helpers don't need to work through larger records that only contain primitive types.<br>
>> If that isn't the case then *that* is a bug.<br>
><br>
> Arghhhh, to much Delphi :\. All confusion is related to my Delphi knowledge. I took it as fact also for FPC.<br>
><br>
> For Delphi even for XE2 in record case there is no difference between RTTI and INIT table. RTTI table for record does not contains any information about unmanaged fields -,- . Just pure copy of INIT table. (Maybe in Delphi exist only INIT table in that case)<br>
><br>
> Output for attached example FPC is 2, output for Delphi is 1. In Delphi rich RTTI information about unmanaged fields for records is stored in different place.<br>
><br>
> === example ===<br>
> type<br>
>   TR = record<br>
>     x: integer;<br>
>     s: string;<br>
>   end;<br>
><br>
> begin<br>
>   WriteLn(PTypeData(GetTypeData(typeinfo(TR)))^.ManagedFldCount);<br>
>   readln;<br>
> end.<br>
></p>
<p>One could say that in case of FPC the name "ManagedFldCount" isn't quite correct ;)</p>
<p>Regards,<br>
Sven</p>