Description: rtti unit and ffi package, and invoke related mods (interface rtti)
This file as text.
(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
Clicking a revision will expand files
* it's more correct for GetPropAttribute to return a TCustomAttribute instead of a TObject
* use a Word instead of a Byte for the attribute index (after all the compiler writes a Word to the count field)
* fix TClassData by including the AttributeTable at the right location
* rename TAttributeData to the more appropriate TAttributeTable
* streamline retrieval of attributes (both in TypInfo and RTTI units)
* to be on the safe side: don't include AttributeTable fields when cycling
- remove unneeded local variable
* TRttiDataCommon is required outside of the RTTI and DynArray include files as well
* handle records with managed fields correctly after attribute merge fixes
* i8086 compilation fix after changeset 42390
* fixes TInterfaceRawData to match TTypeData
* fix alignment of ParamList
* fix test for architectures using aligned rtti
Try to fix alignment issues in RTTI code for 64-bit targets which require proper alignment
* 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
* check for CPUM68k instead of M68K; the latter should only be defined when building the compiler, so I wonder how that ever worked...
* fix for Mantis
0035982: free created attributes once the type is freed
+ added test
* also correctly align the pointer for the record elements inside FPC_COPY
* TClassData also needs alignment dummies
* correct alignment for the property table
* fix for Mantis
0036196: free a property's attributes when the property is destroyed
+ added test
* also advance the error code in the case of success
* implement interface thunk for RISC V 32- and 64-bit
* fix test compilation with Delphi
* fix for Mantis
0038381: apply patch by Bi0T1N to add two Delphi compatible overloads for TValue.Make
* x86_64 Win64 callback implementation: fix building the argument array if the result is passed as a parameter
* TMethodImplementation.HandleCallback: fix building the argument array if the result is passed in a parameter
+ add Handle property to access the TypeInfo pointer of the TRttiType
* move initialization of TValue to a separate method to avoid duplicate implementations
+ add Rtti types for static and dynamic arrays
+ added tests
+ add TValue.FromArray to create a TValue type for a static or dynamic array from an array of TValues
+ added test
* i386 invoke implementation: check the correct argument in the second pass
* fix
gitlab 0039506: 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)
* Delphi compatibility: Add conversion between TValue from/to variant and TVarRec
* use the VWideChar field to retrieve the WideChar value instead of VChar to fix usage on big endian systems
* correctly retrieve the type of the Variant
* rename tests for TValue from tests.value to tests.rtti.value, cause they're still part of the tests related to the RTTI unit
* Make IInterface methods virtual, as in Delphi