Description: rtl-objpas
This file as text.
(active) Revisions in this set:
e060a43d70c9ce31b6134a5e374c907fc74706d4,de15025a4760b8abda8b57606c426d958c00c37a,33f6adfab6658afd26b1738bfc9b7b69bb9890a7
9dcd897ce630bf5d3e9b94f9e47b5c9c26726db8,7bcdc2b37fb9f3e81657e2e06e5b56502b629fc2,e65b822a0c2a0d0dbe11ae3766dc9876accdbf28
bc46d8f33a4caacf63a81a8b4bba8afa0ed4ab5c,f9567ff50e62cc7487455323ca5331745f270dd9,322d91758cf08e72cb41949a60a383e7dab69620
f1059679a17d87904455790fe16110cd51c1692f,caaed25f182e46f839ce4af7756f82bace100942,bf37616514079e814312ee72de65262d2b869194
e95572921a85a84f64ce4864544d549ad0ef5b50,00f4aeb39b84e5a291310697064904d10e6d0313,f74a6abccfb416d7235a46258d28001320ff306e
52ed79c7f3e943129171327dda6d651d83649a35,acaa4660fb7162c7e76d09c93e759cf384492bdb,7cde8df8c78c3e7f7af2758c53e57e2867680baa
f7911393450ac617175341d77df30013117147ce,42b10196f16592cfabc4284ada2e8c3e78b44015,885a265edbe6cfe3a784b95899ccc988b69d8cac
6e324989ebd805b8c5963bbf3f97df7c895b1e27,21f57606a6e99c3135dcabf9d7cd45c590d6248f,56a906a4219bc5533335bf84c3df56250de1de37
9b783281753a1b7b76feb9b9fad04975bc7ac109,15e7dd3d9f5d94136f00c29235f9ffbcb8a5650c,6bf7e4c0d3b2c300790ab5bf8f9fd7ee2d14fa1e
811fb284335d6abad7ada6559e717eae0cf57942,5307ef07c43b0c3005f7d2a2da89b58cd2690993,557a324473694e56ffd934e2f9342ce64cd9b50d
74c995c06b7759bf741954b2e51ece96b9847f75,938207045477ae42af68ac7cf0b30d67de7dffb4,1ce1fcf5aeff6fe3ade196c3e4d1b1d58f80f5fd
b0fd2615194fa74e8b4de328974c9834e6ca06a4,dba81381756d73ff6bc9493bf5e6b15197d0118b,c7426a37ef17dc736fa542767a2c7406e201919b
d0fe59feda4b322ea698b48e5614f9e7d8814645,50344403834db619bdbf15f42ef88bce903d0692,2cec31d86f232e5c47fbe20dfd115d8caf2e5ba5
2ff4fb0e151d84186b0abfe7692cb44fa195dfc0,a9ff6272f6825c7df2ccc21cd0448211b04d565c,121f6fce223c975f5ec2d48cad8e40ae9c47cc1f
54b8de47f0b2792cf8888774524c98655ccdf6ee,b6ccf369b97093839cdefcda2be4e46a65b27bc4,3a5db26abf2ab5fbae9577928a42d78d122e0ae7
ca8d867d570f0a292fb8cb92e397926e34c9fac7,71a46465c8105ac3fa5f492d17ae73ac486b7060,9c5bfbeb780c296556b6317bdc517079c42e390a
09b0ca01ccf02d311c1a2223ac8c1c80ea16e78d,3f7cd9b8076ef8bb0f9fb3a1892d2beb944ccbdb,ba6696d9eda7872b99b9a3b3060545aa7e31051c
7589bb39b86dcb8ff1bd7a3bb4d836659062bf60,074cb3bcf4dd05140984e8f0ff1b42a2caed1ca3,54bb95da81571e745d02770318ceba5fecf4e0d2
d1432b73029b43b6f1a4746782e76c04ea75ac4a,c2176d27eaaeb68e6dc8c2a6a06cb76df6d91876,492717a25c7f4dd0a1f4f7dc98fb2697a38e6b2f
85494cdb1d831c5b0a3053bc4f9268d10ade1295,2463faf5c0b3a23d04d188e3f925960d1534d46b,9fe350bd91c0293c794a5c46e3211d29fb0e2727
ef6612170cbdd9794c3dee1bc5b10c22af57b7ff,92479574779ec3820fce0a6067a7a2bb17493d45,bc2d1cf51c4222b7cb18c93e990436df877a56b1
083e85854444fda9a392a67536d25701081f481e,78c8ca57adc378a75621a9ea921917ab57eae898,e75d97815d19b2540a5311eb0ac8f734765abfee
e67cccee374935361230e26d45ce42a01a5bfb8d,52d3a0d5e3befa86118c9dd762381cb2d20fcdea,6e03b24701771b77c804e1ca774d61d05ac8136c
91756b9e3e658799db1f34de15bfc0bd6267af3a,e7184f3126fe185c4b96edc5d8506fc08e2a97c1,9f5a4205049c74cd503a2e921309acb80c6e5dc7
fafb2934260208b23ba6f7d0e3d21a68dab2c138,7f94fb2a65a1b9b68fa1be9ce53b2e28098ac270,d851553f417233bb8cca6a0ec54f4be864d14056
8eb0d1eaed1b9322706cbb199c093005b1839d43,ab115180bf06334c3b895be4df0e00ff74a186fc,fac7c21b9b95ef254c27c365ddb218817da8c777
342d3338e50110e9f77574571e5fdac29330046b,93937f99ae6cc39b0e11d625aa9a1da05a5c6d67,3e098316fde811eaec9c9812f42a2dfd7f0015b0
92f937c40eb8ebad413e8819de0474306755a1a5,b5a0c3b1b6be6538d7111f2863e4575cd32da662,d3b14eb1ba8dc3b5f2ca1dd47db1faf79cffd2c3
149db318a0c4a4acff4fe5a23d43dd66e7704017,23dd7a51731239e06e2e1bdbc966d240dc4d21fc,6ff63107a68f173d9c03e99c41ab9c40738b2ff0
742158b678ba56230806c0c590c02602e528893c,d79c12ad5b7efafa4c8e8d7d3007d30b5794ca5a,b74411cf03d616201c8bd7a7370df77918d80735
f7bcabd9568c9c27b86b7e77fe6d01c1fc6f7d0e,2469fe8d700ebbfffa9d26b76f7c3607e9f2b15a,f70a430b6f170703190d7d53da1706b607eaf1b0
d9ec917586b3d945bd4d79a857b165c3bb0aab81,d96448cfafabdc0116dbd1f7e7c983b2c48b5a3c,2d0f8467fa235f102b3b7c2b39e5e00a243ab8cd
0b0193106fdde9c4cb466beb8af8136ed4fcbf41,1230e5a623c5c8e31a2c4f0e09f9f1e3fa89e28f,03f98e749cebb73d0bb431a430c6280ea25a9888
26b6d0223e08565cf3080313a5828462604660f2,8ffbbe6a93786927117165a122720e792cea961c,1b8209fee4c887946c9c8c49db9a52c4a3302519
a8ccf71bd0ac5b1c231bfa3d65d900c2cc1f7053,1c816990c33b47ee7b6ea90a2909407295d40b11,59457228111983bfb67ccd8cfbd5953034107499
69140d22eb808fed7f93970102904da246991518,98a7fe6204d5d2a966ae5497b9ebf76325b82b06,5a6b4ed8e4200680ca5ce39d4fd67e0570cd2f8b
6c1c3e35ee99b3646a349e58243530625cd21d74,072cb55315f8c79baf9561cb6218f6fbb77e5057,fd10c8826473e4cf3f333d09dd39e0b218919778
cc6aabaf8b68bb0454c4c960d81ccf85d0e5bc95,4a596a2de30c4b63c7cb535ddb367d9d84bc2964,0acff7a7c15779641a79847fa0a204146e243824
8a92f5f01e6a0b31962e5e584b247c42ea9b309a,2deb5e655740b037102c4ce76c1c0799efb57190,a1892091ed23cc85175403ddf8ef2e5e7ae8bc3a
76e2ee99701b89837445a5b636d4507eb435f567,cb072b6b8c4a228000f98307e63bb7744bf7287e,dfd8f5c62b03b013a348f00dde06dd9f7a0ee0be
b447ab211f4af8a5868970fb4ce4143d7cbe9931,4afc656ac59f5c5f7a37fdefb51ccb93ad7c0173,2070a452178eeeba70327863539c0c1e98394b18
e552165b7a737e8a2860df87da2f53c1dae69395,1f19edef004bad0ea37aa0f7dfdef2139de19ab4,8834c109fa68e83bb3929bea9361f766ab3e1414
774e96f8a9ff472cc47bd1a6f2c25beda6665413,a6e7e3e74345e9d508d57eaf592885763bd57d2c,72459026608d111de2682076c3d2464d5df104f1
4aed151833107e24c5256561422011dc5c786ed0,faf085662d8c8250a63530ac784a8d59886e4461,2e8b9e7e01ffbf180e5c0ac2a2a29d0e06b822a7
12db8a59b526a292182da0b43adb15e9e30b6c7c,6972d16c3ab08068898d123f5b677c6e56d96d1a,814370b894f989fa5c83ac4684e6e0f5465e6227
10e6a54b59b5d62dfe232c84a1b0159c6c73239c,b3d555c2584b513c07ec64abed99423fc5e4d41e,e062a5471663d71d47b16008021fd206877c9f7e
11076f084c5f4c2c536b07761c93b37c362cac83,a0a453f8903b9e9a261b5e6b74ae0b560301b4e4,7210366766d36d906073b8bf16d8ace84e7d4cf0
57a53d6532686a3e80ac1bcb62a10cf76c8fb8c4,b648c6e23716ebdae25e9f59e0cb2a844f44d507,bfa16c0b32b99bcf17abf8d67bc07919615838ec
f2d88692863dfe9896e5fd901a2cc5e58c12cb85,c7275d0bde42998815200f5fbf78e1281f203c7d,083a05904325b4d1aad1905a5fb60fee6ffed742
2b823c4d1721ef5371748a9852606b9802dadc6b,cb74a8d2da8f5d800952efb99a3aabefb230f6c3,afc676511f96cae20340cfc84197e138a7b567f4
64e57de183208a2319e27ad4930115cc67d07bd2,8a738d32537be81e293822aed1d06a10e282364a,f8e45083d049871099d51bfd6355bcf2b39ec90b
5f5fb3febbf34905c67ac176b8f4f7d74b672e13,c19d76f9768754542ddcc3bb3732e34570359989,c856b5c5bfeceb0818ea8eef24f466503636b005
bf533ab2acbdd05e891682424d56057451c642cc,1f3a013f8f17b287f7662f7797717155ee8ad140,20022beca84f6e75339fb2013c01154692bae963
bd9caa2ab275c88abae8d2bf69794f849073009a,5d67d92a917e9f35e4e38ed12cea746124e728c4,b50284466fede3f9f0ec06dc9b3adec9c5c097ff
239d4fe7b7eea8793b2e645d7f83fd09d2e60eef,22720790fab4269a087c95fe2c7c7e0eeb74e912,dbccf5e8444ac8d9631551d6ea91e19570b3f5ec
0fe6f3116cde738ca7d20aa96b9f5649a470e031,8e79959f0cef0bf5f4b462334fd21319d1814740,3889b7ddd0db6bc329f38977bb7f90e8a164e1d0
341a33f4ba05813a9298fd2b41d9bd7a30de8503,090df8e6899b2e0c36a5fcf4d91ae5ac739c4a8b,8b6de92c9cc1a5c1d213fea6297b1d5ea461e768
4a31be415301ed5be38ee741a205d3eeec80df1f,343bb0918773a7d102fa1cc83000ebe285aba2e1,7e5278a40b0e563834cb74962662cb485f0b980a
744ff6ee807187d3b8842df83c367f0d8dbd4a5b,b3e2705226752a1fd9c37e91ee47733f93d2a77e,b829348b4842b064f93175e0c956d1e520c6bc3c
6b17f81e784652696d33940f4cc563da937c71d3,5669fa1a193a47da5eb072cb103cfb7e29d414dc,681737fef900755938f5e528dc8312e9f3ccf2b1
52e38b7043288185fd0d2546bccbc5064fca71e9
Clicking a revision will expand files
* rename TAttributeData to the more appropriate TAttributeTable
* streamline retrieval of attributes (both in TypInfo and RTTI units)
* fix for Mantis
0035982: free created attributes once the type is freed
+ added test
* fix for Mantis
0036196: free a property's attributes when the property is destroyed
+ added test
* implement interface thunk for RISC V 32- and 64-bit
+ add type helpers for the remaining Boolean types (QWordBool and Boolean{8,16,32,64})
* 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 callback implementation: only skip the result argument if it was detected as one from the parameters
* 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)
Improve NaturalCompareText behaviour as a comparer.
This version probably can’t return garbage or intransitive results.
Add loongarch64 packages support
* Some fixes in INtToBin, XorDecode/XorEncode
* Fix compilation after rebase
* Delphi compatibility: Add conversion between TValue from/to variant and TVarRec
* patch and test by Rika: Redirect StrUtils.RPos to StrUtils.RPosEx, fix a bit, improve a bit, resolves
gitlab 0040394
* 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
bypass `real` → `integer` conversion → `real` promotion in `dateUtils.dateOf`
The `dateUtils.dateOf` function takes one `tDateTime` value, a `real` value,
converts it to an `integer` using `trunc`, and then the value is automatically
promoted to a `real` value again (because of result data type `tDateTime`).
This is unnecessary (unless an error is the desired behavior).
You can use just `system.int` to obtain the integral (= date) part of `tDateTime`.
* Add system.actions unit for Delphi compatibility
* Add system.math.vectors for Delphi compatibility.
Refactor and fix a bug in Boyer-Moore.
* Patch from Rika to fix broken test (tw39885)
Refactor promotional features of StrUtils.
* Fix compilation of unicode RTL after patch by Rika
Fix a leak in StrUtils.StringsReplace, change StrUtils.IsWordPresent to work like Pos, and make a few more minor adjustments.
* Fix typo, missing brackets
* Make IInterface methods virtual, as in Delphi
* patch by Евгений Савин to make Variant to string convertion use CurrToStr for varCurrency, resolves
gitlab 0040624
* Add TRttiEnumerationType for Delphi compatibility
* Get extended methods, fields and property info.
Fix msdos compilation failure by using CodePointer type for GetCodeAddress TRttiRecordMethod function
* Return delphi-compatible output for TValue.ToString when empty
+ Add Simple MonitorSupport implementation
* Get Field Attributes + tests
Create TMonitorData initialized.
Set ‘TMonitorData’s without locking.
Manage ‘TPulseData’s as linked list of structures allocated in ‘Wait’ stack frames.
‘LockCount’ does not require atomics.
TMonitor.Wait temporarily unlocks through recursive calls.
Use exponential backoff in timeouted ‘TMonitor.Enter’ and explain why it’s still a bad solution.
* Do not prefix with unit name unless necessary
* Fix wrong type for threadID
* Implement TRttiField.(G|S)etValue
Alternative implementation of TMonitor for Windows Vista+.
* Implement GetCodeAddress for TRttiInstanceMethod
* Remove additional memleak
* Fix duplicate registration of existing RTTI
* Fix ref count of interface during cast
* Synchronize Method/Field treatment. Correct parent for fields
* Complete erroneously partial commit
* Allow to call constructor using Invoke()
* Properly pass on FUsePublishedOnly to properties. Fixes issue
gitlab 0040702
* Allow ToString for object value
* Fixed DeclaredFields for record, should be the same as fields
* Add TCubicBezierCurve for Delphi compatibility
Move varutils.pp from src/common to src/inc directory
Use single main file src/inc/varutils.pp for Windows and other OSes
Fix syntax error in last commit
* Small correction in property resolve
* Correctly pass UsePublishedOnly on to sub-contexts. Fixes issue
gitlab 0040828
* Handle tkFloat in TValue.ToString
* Implement DropContext/KeepContext for Delphi compatibility. Patch by Artem Izmaylov. Fixes issue
gitlab 0040884
Adding some convinience functions to TNullable
+ Add license header to tuples, add to fpmake
Adding TNullPtr to types
Additional changes:
* Now using TNullPtr instead of custom type in TNullable
* Adding assignment of variants with TNulPtr to avoid name conflicts
* Adding comparison to TNullPtr (Pointers, TObjects, TNullable)
Adding pointer access to nullable
* Add GetMethod(name), patch by Lipinast Lekrisov, fixes issue
gitlab 0040953
* Patch from Lipinast Lekrisov to implement setting method-type properties. Fixes issue
gitlab 0040970
Added TRttiIndexedProperty, the whole property handling infrastructure has been significantly redesigned
Fixed TRttiRecordType.ResolveProperties (records do not have a published section)
* fix compilation on systems where SizeOf(CodePointer) <> SizeOf(Pointer): disable ToString for tkMethod on these systems for now
* in the Win64 ABI all const record parameters are passed by reference
* Patch from Евгений Савин to fix missing ansistring conversion in TryCast. Fixes issue
gitlab 0041002
* Patch from Евгений Савин to implement TValue.Cast for floats. Fixes issue
gitlab 0041011
* Delphi-compatible output for tvalue.asstring for float value. Fixes issue
gitlab 0041027
* Fix TValue casts, patch by Евгений Савин, fixes issue
gitlab 0041030
* Add IsType with aEmptyAsAnyType param
* Patch from Евгений Савин to fix TValue.From
. Fixes issue gitlab 0041013
* correct TValue.Cast
, patch by Евгений Савин. Fixes issue gitlab 0041042
* Add overload, needed when specializing in Delphi mode
* Allow assign of pointer to TValue. Patch by Lipinast Lekrisov
* Introduce AsRecord. Patch by Lipinast Lekrisov
* Allow to cast pointer TValue to class pointer. Patch from Lipinast Lekrisov
* TValue.From with buffer and typeinfo. Patch from Lipinast Lekrisov
* Delphi-compatible ToString for TRttiType. Patch from Lipinast Lekrisov
* Introduce AsOrdinal. Patch by Lipinast Lekrisov
* Get method by address. Patch by Lipinast Lekrisov
* Correct TRttiOrdinalType.GetIsOrdinal. Patch from Lipinast Lekrisov
* Introduce IsClassProperty, Index and Default in TRttiProperty. Patch from Lipinast Lekrisov
* Fix compiler warnings and hints
* Introduce TRttiMethodType.GetMethodKind. Patch by Lipinast Lekrisov
* Read/Write static properties. Patch from Lipinast Lekrisov
* Invoke for record methods, refactoring method rtti by Lipinast Lekrisov
* Improvements to TValue.ToString by Lipinast Lekrisov
* Small improvement in setting method prop, by Lipinast Lekrisov
* Forgot to commit, main part of indexed properties implementation by Lipinast Lekrisov
* TValue.Asstring for double
* Small change in indexed property .ToString
* SMall optimization in TRttiInstanceMethod.GetParameters
* GetDataSize is 0 for empty TValue
* GetHasExtendedInfo returns false in TRttiMethod
* optimization of TRttiInstanceType.ResolveExtendedDeclaredProperties
* Extend error message SErrInvokeArgInvalidType
* Fixes after re-running test
* Order of parent/child methods is now same as in delphi documentation
* Correctly set FDeclaredProperties length
* fix compilation on i8086 where depending on the memory type code and data pointers may be different (Note: this does not mean that the code works as the RTTI data generated by the compiler does not seem valid either)
- current Lazarus IDEs can handle generic methods, so no need for NoGenericMethods anymore
+ initial implementation of System.Rtti.Invoke() for WebAssembly. Currently
only works with the internal linker. Not all types have been tested, yet.
* proper handling for boolean results (especially Boolean64 and QWordBool) in System.Rtti.Invoke
* also handle enumeration results and integer result sizes, other than 32-bit in System.Rtti.Invoke for WebAssembly
Fix NaturalCompareText for string = unicodestring.
* Call correct newinstance when overridden. Fixes issue
gitlab 0041090
* Patch from Lipinast Lekrisov to get/set record-typed values. Fixes issue
gitlab 0041129
* Minimal TTimeZone class for Delphi compatibility
Try to solve compilation failure for msdos OS
* Various IsXYZ functions for TValue
Take into account the size of HexText TBytes open array before calling HexToBin overload with PAnsiChar first parameter
Add support for win16 target by introducing USE_WINDOWS_UNIT define, which is set for other Windows OSes
Use USE_WINDOWS_OLE_FUNCTIONS macro to avoid build failure for win16 OS target
Also use USE_WINDOWS_UNIT macro in rtti unit
Set USE_MSWINDOWS_OLE macro on Windows OSes supporting OLE strings, and use it
* Patch from Lacak to add support for densely packed decimal64 format
* Fix EVariantTypeCastError for array with QWord values. Fixes issue
gitlab 0040287
Use the MemPos approach in IsWordPresent.
* Add format method for Delphi compatibility
* Some Delphi compatibility fixes
* TLocalTimeZone.FixDoGetOffsetsAndType
Fix TRttiContext thread safety.
Make use of the automatic TRttiContext management.
Fix compilation for target without threading feature
+ add implicit assignment operators from TDateTime, TDate and TTime to TValue so that the later will have the correct type information
+ add = and <> operators to TValue based on the existing SameValue()
* Allow to hook into QueryInterface for thunk objects
Fix a memory leak in the SetPropValue method for tkDynArray type properties.
Fix 1f3a013f8f1 for unix target, by using system.TTime (to avoid using TTime also defined in baseunix unit)
+ added explicit check for a nil function parameter in ConvUtils.RegisterConversionType, in order to fix the units/convutils/tconv1 test on the WASI platform
* Fix wrongly placed define
* adjust TMethodImplementation, TRttiMethod and TRttiInvokableType to use a function reference instead of a method or function variable
(the old types are still there, but deprecated as the compiler should be able to pass them to the new CreateImplementation() methods nevertheless)
+ add Delphi-compatible overload for TRttiInvokableType.CreateImplementation (at the same time also provides a more correct implementation of the TCallback one)
* TValue.AsChar needs to return Char, not AnsiChar
* readd adjusted comment regarding InLazIDE which can still have its use
* CodeTools does not yet like the "deprecated" for method pointers so protect them with InLazIDE
* more handling of varUString in Variant utility functions
+ add utility function to retrieve a UnicodeString from a Variant
- remove unnecessary case-header
* handle tkAString, not tkLString as the former is for AnsiString while the later is for the not fully implemented ShortString-like LongString type
* fix the build after 090df8e6
Rebased with trunk to fix inadvertent revisions
* Automatically detect use of Extended RTTI. Fixes issue
gitlab 0041089
(inactive) Revisions in this set a7578e144d4dbb18405e80f55822e140fc049be8,2b0d98bf2ceb00ebe2b479f91a33bed106513791,cc81e183226bb1d36dd19b7755c51e2633be8f09,476780df7710331877ee1c77af234dc75d13e8ba,666de1e77c5b8ae629c7e0ee5f9afac036b3e18e,f7214e6ae8314d5dc35caff50dd7e27f99a27cc2,05a6a498c0ee55b5b1462d5d9d9ca036dc67505d,14d65ced2eaa7747628d7f281f36ad2af56057b2,1208f4d5b9a5157cf205c71d9244fb9bf41ad15d,f23dbc2ecb1674a701d034aeecc8bb74ac0698b0,134e9645144fb7dab91d988763cf0eef02c42b12
Fix compilation for msdos targets
* Add TTouchTracking for Delphi compatibility
* Virtual key definitions added
* Int64 and QWord are valid types. Fix issue
0040778
* Add missing PAlphaColorF
* ported mechanism from unit activex to deal with ansi/unicode -> widestring conversion.
Targeted at bug
0041235
Revert "* ported mechanism from unit activex to deal with ansi/unicode -> widestring conversion."
This reverts commit 1208f4d5b9a5157cf205c71d9244fb9bf41ad15d
* ported mechanism from unit activex to deal with ansi/unicode -> widestring conversion.
* 2nd attempt, now under $IFDEF MSWINDOWS
Revisions in bigsets in this set 4b5ffd1b2363b8853525a11d20d4ada6c8c5bc12