<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2016-12-12 20:41 GMT+01:00 Sven Barth <span dir="ltr"><<a href="mailto:pascaldragon@googlemail.com" target="_blank">pascaldragon@googlemail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">So, my own idea for this.</blockquote></div><br>First insight looks good (kudos for union with "<span style="font-size:12.8px">deprecated field" ^^) and we don't have redundant info</span>, but sorry it can't work in presented form.</div><div class="gmail_extra"><br></div><div class="gmail_extra">With your changes INIT RTTI is incompatible with RTTI, which is critical defect for RTL. FPC_(INITIALIZE|FINALIZE|COPY|ADDREF) (rtl/inc/rtti.inc) is used in many contexts - both for internal usage (where generally is used INIT RTTI) and for external usage (with regular RTTI). Since we have InitializeArray/FinalizeArray/CopyArray is possible to execute  FPC_(INITIALIZE|FINALIZE|COPY) with RTTI for records (instead of INIT RTTI for records) which means AV.</div><div class="gmail_extra"><br></div><div class="gmail_extra">To solve this issue you need obligatory to add RecInitTable: PPointer; (and Terminator for INIT RTTI). To move forward presented patch is obligatory:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><a href="https://github.com/maciej-izak/freepascal/commit/ea23ca80630fae488990dcd4bc62ddc94b18d304">https://github.com/maciej-izak/freepascal/commit/ea23ca80630fae488990dcd4bc62ddc94b18d304</a><br></div><div class="gmail_extra">*PART 2* <a href="http://bugs.freepascal.org/view.php?id=30687#c96093">http://bugs.freepascal.org/view.php?id=30687#c96093</a> <br></div><div class="gmail_extra"><br></div><div class="gmail_extra">This is first step. With second iteration we could add your modifications, I have no other objections. See above patch - it is already prepared for differences between INIT RTTI (TRecordInfoInit) and FULL RTTI (TRecordInfoFull) </div><div class="gmail_extra"><br></div><div class="gmail_extra">Finally we can merge both ideas. User has access to:</div><div class="gmail_extra"><br></div><div class="gmail_extra">* Classical array of <span style="font-size:12.8px">compact</span><span style="font-size:12.8px"> </span>"managed field" by RecInitTable</div><div class="gmail_extra">* All fields</div><div class="gmail_extra">* All managed fields (in your solution it has sense)</div><div class="gmail_extra"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div>Best regards,<br>Maciej Izak</div></div></div>
</div></div>