Description: rtti unit and ffi package, and invoke related mods (interface rtti) (active) Revisions in this set 5153a288dc63937a3b79d305f72cab94e5ab99e3,788d976f3a2d89bbf59721280c4d6dc193f6624b,c17dafc2f932c23033c990232e776f374b19cc81,e060a43d70c9ce31b6134a5e374c907fc74706d4,de15025a4760b8abda8b57606c426d958c00c37a,affa9f9d9ca31c0e28cb61b084617ae4b3d6875c,8cd1f1973bfcf432f87e5df74beb23cd45b03c93,55dfb59631a5e666c3d6e527aebad5086aeb359a,a60ab40237581e8ea583b159308438cd62554d3f,a3a39e164040751afc38637a02a5624063048be0,73acb4d1c134f218af71d06adbf3a980202647d0,1a67ffdd22de1d5e5ebe07a328db8806d9831ebb,d6d3e171ceabb0e194e8ecd5de51b6cfdc1922a3,0c464605483132ac901f4004aa69a8d33555b671,707e05d131eae05c11007aa6cd58a64baf73e938,33f6adfab6658afd26b1738bfc9b7b69bb9890a7,00a418f589341d6ed9f3ba4ee80f6e6d552aa541,2dc771b7baba950cc451ff4c1c4cdae9c770cd23,7e1607e095b2c271a636993186e26a5d32fbf06f,9dcd897ce630bf5d3e9b94f9e47b5c9c26726db8,d813edef7239c683355be089ff9b089599bb3c4b,7bcdc2b37fb9f3e81657e2e06e5b56502b629fc2,0ba689de84df28a0a690aa5607ee83df7bba26b4,f383cf4deb29c6ba3d89c830bd40fc1e6632e98c,bc46d8f33a4caacf63a81a8b4bba8afa0ed4ab5c,f9567ff50e62cc7487455323ca5331745f270dd9,322d91758cf08e72cb41949a60a383e7dab69620,f1059679a17d87904455790fe16110cd51c1692f,caaed25f182e46f839ce4af7756f82bace100942,bf37616514079e814312ee72de65262d2b869194,00f4aeb39b84e5a291310697064904d10e6d0313,f74a6abccfb416d7235a46258d28001320ff306e,52ed79c7f3e943129171327dda6d651d83649a35,6e324989ebd805b8c5963bbf3f97df7c895b1e27,21f57606a6e99c3135dcabf9d7cd45c590d6248f,6bf7e4c0d3b2c300790ab5bf8f9fd7ee2d14fa1e,811fb284335d6abad7ada6559e717eae0cf57942,cb2fa0d2c1f3711d62a17b3f4e2a4796390527c4,c7426a37ef17dc736fa542767a2c7406e201919b,d0fe59feda4b322ea698b48e5614f9e7d8814645,a9ff6272f6825c7df2ccc21cd0448211b04d565c,54b8de47f0b2792cf8888774524c98655ccdf6ee commit 5153a288dc63937a3b79d305f72cab94e5ab99e3 Author: svenbarth Date: Fri Jul 12 22:05:33 2019 +0000 * it's more correct for GetPropAttribute to return a TCustomAttribute instead of a TObject git-svn-id: trunk@42366 - M rtl/objpas/typinfo.pp --- commit 788d976f3a2d89bbf59721280c4d6dc193f6624b Author: svenbarth Date: Fri Jul 12 22:05:39 2019 +0000 * use a Word instead of a Byte for the attribute index (after all the compiler writes a Word to the count field) git-svn-id: trunk@42367 - M rtl/objpas/typinfo.pp --- commit c17dafc2f932c23033c990232e776f374b19cc81 Author: svenbarth Date: Fri Jul 12 22:05:51 2019 +0000 * fix TClassData by including the AttributeTable at the right location git-svn-id: trunk@42370 - M rtl/objpas/typinfo.pp --- commit e060a43d70c9ce31b6134a5e374c907fc74706d4 Author: svenbarth Date: Fri Jul 12 22:05:55 2019 +0000 * rename TAttributeData to the more appropriate TAttributeTable git-svn-id: trunk@42371 - M packages/rtl-objpas/src/inc/rtti.pp M rtl/objpas/typinfo.pp M tests/test/tcustomattr1.pp M tests/test/tcustomattr10.pp M tests/test/tcustomattr11.pp M tests/test/tcustomattr4.pp M tests/test/tcustomattr9.pp --- commit de15025a4760b8abda8b57606c426d958c00c37a Author: svenbarth Date: Fri Jul 12 22:06:02 2019 +0000 * streamline retrieval of attributes (both in TypInfo and RTTI units) git-svn-id: trunk@42373 - M packages/rtl-objpas/src/inc/rtti.pp M rtl/objpas/typinfo.pp --- commit affa9f9d9ca31c0e28cb61b084617ae4b3d6875c Author: svenbarth Date: Fri Jul 12 22:06:44 2019 +0000 * to be on the safe side: don't include AttributeTable fields when cycling git-svn-id: trunk@42385 - M rtl/objpas/typinfo.pp --- commit 8cd1f1973bfcf432f87e5df74beb23cd45b03c93 Author: svenbarth Date: Fri Jul 12 22:06:48 2019 +0000 - remove unneeded local variable git-svn-id: trunk@42386 - M rtl/objpas/typinfo.pp --- commit 55dfb59631a5e666c3d6e527aebad5086aeb359a Author: svenbarth Date: Sat Jul 13 14:38:20 2019 +0000 * TRttiDataCommon is required outside of the RTTI and DynArray include files as well git-svn-id: trunk@42437 - M rtl/inc/system.inc --- commit a60ab40237581e8ea583b159308438cd62554d3f Author: florian Date: Sun Jul 21 14:17:27 2019 +0000 * handle records with managed fields correctly after attribute merge fixes git-svn-id: trunk@42480 - M rtl/inc/rtti.inc --- commit a3a39e164040751afc38637a02a5624063048be0 Author: nickysn Date: Tue Jul 23 11:57:20 2019 +0000 * i8086 compilation fix after changeset 42390 git-svn-id: trunk@42485 - M rtl/objpas/typinfo.pp --- commit 73acb4d1c134f218af71d06adbf3a980202647d0 Author: florian Date: Tue Jul 23 19:59:34 2019 +0000 * fixes TInterfaceRawData to match TTypeData git-svn-id: trunk@42486 - M rtl/objpas/typinfo.pp --- commit 1a67ffdd22de1d5e5ebe07a328db8806d9831ebb Author: florian Date: Sun Jul 28 12:43:15 2019 +0000 * fix alignment of ParamList * fix test for architectures using aligned rtti git-svn-id: trunk@42516 - M rtl/objpas/typinfo.pp M tests/webtbs/tw12038.pp --- commit d6d3e171ceabb0e194e8ecd5de51b6cfdc1922a3 Author: pierre Date: Thu Aug 1 14:46:56 2019 +0000 Try to fix alignment issues in RTTI code for 64-bit targets which require proper alignment git-svn-id: trunk@42549 - M rtl/inc/rtti.inc --- commit 0c464605483132ac901f4004aa69a8d33555b671 Author: svenbarth Date: Thu Aug 22 20:45:45 2019 +0000 * m68k has slightly different alignment requirements, so that aligntoptr might result in incorrect addresses for a record's element entries, thus we introduce a separate AlignTypeData function that handles this correctly git-svn-id: trunk@42764 - M rtl/inc/rtti.inc M rtl/inc/system.inc --- commit 707e05d131eae05c11007aa6cd58a64baf73e938 Author: svenbarth Date: Thu Aug 22 20:45:48 2019 +0000 * check for CPUM68k instead of M68K; the latter should only be defined when building the compiler, so I wonder how that ever worked... git-svn-id: trunk@42765 - M rtl/objpas/typinfo.pp --- commit 33f6adfab6658afd26b1738bfc9b7b69bb9890a7 Author: svenbarth Date: Fri Aug 23 14:59:13 2019 +0000 * fix for Mantis #35982: free created attributes once the type is freed + added test git-svn-id: trunk@42773 - M .gitattributes M packages/rtl-objpas/src/inc/rtti.pp A tests/webtbs/tw35982.pp --- commit 00a418f589341d6ed9f3ba4ee80f6e6d552aa541 Author: svenbarth Date: Fri Aug 23 21:57:17 2019 +0000 * also correctly align the pointer for the record elements inside FPC_COPY git-svn-id: trunk@42781 - M rtl/inc/rtti.inc --- commit 2dc771b7baba950cc451ff4c1c4cdae9c770cd23 Author: svenbarth Date: Sat Aug 24 23:08:33 2019 +0000 * TClassData also needs alignment dummies git-svn-id: trunk@42807 - M rtl/objpas/typinfo.pp --- commit 7e1607e095b2c271a636993186e26a5d32fbf06f Author: svenbarth Date: Sat Aug 24 23:08:36 2019 +0000 * correct alignment for the property table git-svn-id: trunk@42808 - M rtl/objpas/typinfo.pp --- commit 9dcd897ce630bf5d3e9b94f9e47b5c9c26726db8 Author: svenbarth Date: Mon Oct 21 19:42:19 2019 +0000 * fix for Mantis #36196: free a property's attributes when the property is destroyed + added test git-svn-id: trunk@43299 - M .gitattributes M packages/rtl-objpas/src/inc/rtti.pp A tests/webtbs/tw36196.pp --- commit d813edef7239c683355be089ff9b089599bb3c4b Author: svenbarth Date: Fri Nov 8 22:34:07 2019 +0000 * also advance the error code in the case of success git-svn-id: trunk@43419 - M tests/test/trtti17.pp --- commit 7bcdc2b37fb9f3e81657e2e06e5b56502b629fc2 Author: svenbarth Date: Thu Jan 30 21:46:11 2020 +0000 * implement interface thunk for RISC V 32- and 64-bit git-svn-id: trunk@44071 - M packages/rtl-objpas/src/inc/rtti.pp --- commit 0ba689de84df28a0a690aa5607ee83df7bba26b4 Author: svenbarth Date: Sun May 2 19:08:38 2021 +0000 * fix test compilation with Delphi git-svn-id: trunk@49326 - M packages/rtl-objpas/tests/tests.rtti.pas M packages/rtl-objpas/tests/tests.rtti.util.pas --- commit f383cf4deb29c6ba3d89c830bd40fc1e6632e98c Author: svenbarth Date: Sun May 2 19:08:42 2021 +0000 * fix for Mantis #38381: apply patch by Bi0T1N to add two Delphi compatible overloads for TValue.Make git-svn-id: trunk@49327 - M packages/rtl-objpas/src/inc/rtti.pp M packages/rtl-objpas/tests/tests.rtti.pas --- commit bc46d8f33a4caacf63a81a8b4bba8afa0ed4ab5c Author: Sven/Sarah Barth Date: Fri Dec 24 13:49:48 2021 +0100 * x86_64 Win64 callback implementation: fix building the argument array if the result is passed as a parameter M packages/rtl-objpas/src/x86_64/invoke.inc --- commit f9567ff50e62cc7487455323ca5331745f270dd9 Author: Sven/Sarah Barth Date: Fri Dec 24 13:52:03 2021 +0100 * TMethodImplementation.HandleCallback: fix building the argument array if the result is passed in a parameter M packages/rtl-objpas/src/inc/rtti.pp --- commit 322d91758cf08e72cb41949a60a383e7dab69620 Author: Sven/Sarah Barth Date: Fri Dec 24 13:53:04 2021 +0100 + add Handle property to access the TypeInfo pointer of the TRttiType M packages/rtl-objpas/src/inc/rtti.pp --- commit f1059679a17d87904455790fe16110cd51c1692f Author: Sven/Sarah Barth Date: Fri Dec 24 13:56:34 2021 +0100 * move initialization of TValue to a separate method to avoid duplicate implementations M packages/rtl-objpas/src/inc/rtti.pp --- commit caaed25f182e46f839ce4af7756f82bace100942 Author: Sven/Sarah Barth Date: Fri Dec 24 13:59:58 2021 +0100 + add Rtti types for static and dynamic arrays + added tests M packages/rtl-objpas/src/inc/rtti.pp M packages/rtl-objpas/tests/tests.rtti.pas --- commit bf37616514079e814312ee72de65262d2b869194 Author: Sven/Sarah Barth Date: Fri Dec 24 14:47:01 2021 +0100 + add TValue.FromArray to create a TValue type for a static or dynamic array from an array of TValues + added test M packages/rtl-objpas/src/inc/rtti.pp M packages/rtl-objpas/tests/tests.rtti.pas --- commit 00f4aeb39b84e5a291310697064904d10e6d0313 Author: Sven/Sarah Barth Date: Fri Dec 24 23:30:33 2021 +0100 * i386 invoke implementation: check the correct argument in the second pass M packages/rtl-objpas/src/i386/invoke.inc --- commit f74a6abccfb416d7235a46258d28001320ff306e Author: Sven/Sarah Barth Date: Fri Dec 24 23:31:12 2021 +0100 * fixup M packages/rtl-objpas/src/inc/rtti.pp --- commit 52ed79c7f3e943129171327dda6d651d83649a35 Author: Sven/Sarah Barth Date: Tue Jan 4 23:41:38 2022 +0100 * fix #39506: add assignment operator overloads for all string types so that assignments of constant strings can be handled correctly + added adjusted/extended test (the test isn't enabled by default however as it requires libffi on most platforms) M packages/rtl-objpas/src/inc/rtti.pp A tests/webtbs/tw39506.pp --- commit 6e324989ebd805b8c5963bbf3f97df7c895b1e27 Author: Michaël Van Canneyt Date: Thu Jun 1 17:41:17 2023 +0200 * Delphi compatibility: Add conversion between TValue from/to variant and TVarRec M packages/rtl-objpas/src/inc/rtti.pp M packages/rtl-objpas/tests/testrunner.rtlobjpas.pp A packages/rtl-objpas/tests/tests.value.pas --- commit 21f57606a6e99c3135dcabf9d7cd45c590d6248f Author: Michaël Van Canneyt Date: Mon Jun 5 11:40:37 2023 +0200 * GetAttribute call M packages/rtl-objpas/src/inc/rtti.pp M packages/rtl-objpas/tests/tests.rtti.pas M packages/rtl-objpas/tests/tests.rtti.types.pas --- commit 6bf7e4c0d3b2c300790ab5bf8f9fd7ee2d14fa1e Author: Sven/Sarah Barth Date: Thu Sep 21 22:41:19 2023 +0200 * use the VWideChar field to retrieve the WideChar value instead of VChar to fix usage on big endian systems M packages/rtl-objpas/src/inc/rtti.pp --- commit 811fb284335d6abad7ada6559e717eae0cf57942 Author: Sven/Sarah Barth Date: Fri Sep 22 15:03:16 2023 +0200 * correctly retrieve the type of the Variant M packages/rtl-objpas/src/inc/rtti.pp --- commit cb2fa0d2c1f3711d62a17b3f4e2a4796390527c4 Author: Sven/Sarah Barth Date: Fri Sep 22 15:05:21 2023 +0200 * rename tests for TValue from tests.value to tests.rtti.value, cause they're still part of the tests related to the RTTI unit M packages/rtl-objpas/tests/testrunner.rtlobjpas.pp R099 packages/rtl-objpas/tests/tests.value.pas packages/rtl-objpas/tests/tests.rtti.value.pas --- commit c7426a37ef17dc736fa542767a2c7406e201919b Author: Michaël Van Canneyt Date: Wed Nov 1 15:22:36 2023 +0100 * (Try)Cast M packages/rtl-objpas/src/inc/rtti.pp --- commit d0fe59feda4b322ea698b48e5614f9e7d8814645 Author: Michaël Van Canneyt Date: Wed Nov 1 15:27:32 2023 +0100 --amend M packages/rtl-objpas/src/inc/rtti.pp --- commit a9ff6272f6825c7df2ccc21cd0448211b04d565c Author: Michaël Van Canneyt Date: Thu Nov 9 11:28:53 2023 +0100 * Add IsInstanceOf M packages/rtl-objpas/src/inc/rtti.pp --- commit 54b8de47f0b2792cf8888774524c98655ccdf6ee Author: Michaël Van Canneyt Date: Wed Nov 29 14:44:53 2023 +0100 * Make IInterface methods virtual, as in Delphi M packages/rtl-objpas/src/inc/rtti.pp