Commit Graph

264 Commits

Author SHA1 Message Date
svenbarth
9a9c6a3ff4 * fix for Mantis #35150: correctly convert Int64/QWord values to OleVariant (Delphi compatible)
+ added test

git-svn-id: trunk@41571 -
2019-03-03 14:50:09 +00:00
svenbarth
07b1a3d211 * adjust signature of variant managers olevarfromint so that 64-bit values can be passed as well (as was probably intended originally)
git-svn-id: trunk@41570 -
2019-03-03 14:50:05 +00:00
svenbarth
158224a808 * reorder methods to get rid of some inlining notes (no functional changes)
git-svn-id: trunk@41549 -
2019-03-02 12:08:45 +00:00
svenbarth
033561d039 * fix passing structured result values on non-Win32
git-svn-id: trunk@41548 -
2019-03-02 11:19:23 +00:00
svenbarth
42d126e713 * enable Invoke() tests for i386
git-svn-id: trunk@41537 -
2019-03-01 15:21:01 +00:00
svenbarth
d7bb4bd411 + add function call manager which implements Invoke() for the i386 register calling convention
git-svn-id: trunk@41536 -
2019-03-01 15:20:59 +00:00
svenbarth
c2da9abd17 * correctly compare floating point values in TValue
git-svn-id: trunk@41535 -
2019-03-01 15:20:56 +00:00
michael
fbba24d636 * Fix bug ID #35098 (count param)
git-svn-id: trunk@41343 -
2019-02-16 14:52:17 +00:00
marco
86168dfdd1 * Patch from Serge Anvarov with missing strutils aliases. Mantis #35047
git-svn-id: trunk@41263 -
2019-02-09 12:31:15 +00:00
svenbarth
56eaa913b5 * correctly check for the Extended value of a Currency and Comp value
git-svn-id: trunk@40765 -
2019-01-04 15:03:27 +00:00
Károly Balogh
5182dc37af haiku-x86_64: regenerated all Makefiles, take 2
git-svn-id: trunk@40758 -
2019-01-04 03:18:42 +00:00
svenbarth
5d1edc8ca2 * move CallHandler() abstract method out of Windows ifdef so that the include works for non-Windows as well
git-svn-id: trunk@40747 -
2019-01-02 21:58:50 +00:00
svenbarth
f31aa97261 + add a callback implementation for the Win64 calling convention
git-svn-id: trunk@40703 -
2018-12-29 19:21:30 +00:00
svenbarth
9642d210c0 * method pointers are also returned by parameter
git-svn-id: trunk@40702 -
2018-12-29 19:21:27 +00:00
svenbarth
147dd4021d + add functions that abstract working with virtual memory across targets for use with callbacks (for now only Windows is implemented; *nix targets should come next)
git-svn-id: trunk@40701 -
2018-12-29 19:21:23 +00:00
svenbarth
30b1a45704 + add tests for TMethodImplementation for method and procedure variables
git-svn-id: trunk@40700 -
2018-12-29 19:21:20 +00:00
svenbarth
d3acbc1784 + add ability to create method implementations for method and procedure variables (Delphi does not support this, but I see no reason to prohibit this...)
git-svn-id: trunk@40699 -
2018-12-29 19:21:16 +00:00
svenbarth
f97688a07b + add TMethodImplementation class
git-svn-id: trunk@40698 -
2018-12-29 19:21:12 +00:00
svenbarth
9a23613b9d * rework low level callback API
git-svn-id: trunk@40697 -
2018-12-29 19:21:09 +00:00
svenbarth
feff0c673f * move some types to the top of the unit
git-svn-id: trunk@40696 -
2018-12-29 19:21:05 +00:00
svenbarth
c3081f7cf3 * fix Comp type casts to QWord and Int64
git-svn-id: trunk@40695 -
2018-12-29 19:21:02 +00:00
svenbarth
2c20643ba6 * fix ShortString handling in TValue (always the maximum length of the corresponding ShortString type is allocated)
git-svn-id: trunk@40694 -
2018-12-29 19:20:58 +00:00
svenbarth
17c3354f9c + provide IValueData's ExtractRawData(NoCopy)() in TValue (and also implement it for non-heap types)
git-svn-id: trunk@40693 -
2018-12-29 19:20:54 +00:00
svenbarth
bef1b84d63 * move utility code to a separate unit
git-svn-id: trunk@40692 -
2018-12-29 19:20:51 +00:00
svenbarth
f0753517b4 * fix compilation on platforms that *do* have a Comp type
git-svn-id: trunk@40673 -
2018-12-27 09:21:45 +00:00
svenbarth
9eac2ea852 * correctly handle record, set and array results if no extended parameter information is available
git-svn-id: trunk@40669 -
2018-12-26 22:59:45 +00:00
svenbarth
8c52dc30ce * move check for result location to separate function
git-svn-id: trunk@40668 -
2018-12-26 22:59:42 +00:00
svenbarth
cfd8df4894 + add tests for raw Invoke() which needs to determine the result location by itself
git-svn-id: trunk@40667 -
2018-12-26 22:59:39 +00:00
svenbarth
93e0cd9e1a * fix for Mantis #34496: correctly align stack so that SSE operations work correctly
git-svn-id: trunk@40666 -
2018-12-26 22:59:36 +00:00
svenbarth
30f14cfcc0 + add some more tests for floating point values
git-svn-id: trunk@40665 -
2018-12-26 22:59:33 +00:00
svenbarth
dbaf7a69bd * correctly handle a floating point result
git-svn-id: trunk@40664 -
2018-12-26 22:59:30 +00:00
svenbarth
551e36cd19 + add tests for floating point arguments and results
git-svn-id: trunk@40663 -
2018-12-26 22:59:27 +00:00
svenbarth
0d09c3c124 + add utility functions to get TValue values for Single, Double, Extended, Comp and Currency
git-svn-id: trunk@40662 -
2018-12-26 22:59:24 +00:00
svenbarth
bd328025fd * correctly compare tkFloat values
git-svn-id: trunk@40661 -
2018-12-26 22:59:21 +00:00
svenbarth
8d235b5f26 * more correct handling of floating point values (especially Comp and Currency) inside TValue
git-svn-id: trunk@40660 -
2018-12-26 22:59:18 +00:00
pierre
f8563772c5 Always accept empty string as meaning zero is TryRomanToInt, fixes intermittent errors in tromantoint test
git-svn-id: trunk@40537 -
2018-12-13 10:21:58 +00:00
michael
090141a69c * Allow to retrieve argument size, patch by Silvio Clecio (bug ID 34611)
git-svn-id: trunk@40394 -
2018-11-29 15:34:00 +00:00
pierre
deb3d5a0a9 + Add Debug message when resource file is found, but not registered.
+ Add missing "T.ResourceStrings:=True;" for all source units
    that generate the new debug message above.

git-svn-id: trunk@40365 -
2018-11-24 15:14:57 +00:00
michael
ab159c638c * Move consts to stdconv
git-svn-id: trunk@39994 -
2018-10-20 12:18:16 +00:00
yury
a29290202f * Regenerated makefiles to support x86_64-android.
git-svn-id: trunk@39958 -
2018-10-17 17:12:20 +00:00
marco
b3feccb397 * fix trailing quote char. Patch by wp mantis 34405
git-svn-id: trunk@39910 -
2018-10-10 08:23:50 +00:00
svenbarth
e644e6332b - remove forgotten debug code
git-svn-id: trunk@39897 -
2018-10-07 12:51:09 +00:00
svenbarth
c97b607e60 * also run invoke tests if internal function call manager is available (which we prefer to the ffi one)
git-svn-id: trunk@39896 -
2018-10-07 12:26:09 +00:00
svenbarth
509383aeb3 + add define to use ffi function call manager for tests
git-svn-id: trunk@39895 -
2018-10-07 12:26:06 +00:00
svenbarth
ea5f407c49 + add a TFunctionCallManager that provides built in Invoke() support for x86_64-win64
git-svn-id: trunk@39894 -
2018-10-07 12:26:03 +00:00
svenbarth
afc83b9f70 + implement the high level Invoke() for TRttiMethod (currently only for interface methods), TRttiMethodType and TRttiProcedureType
git-svn-id: trunk@39893 -
2018-10-07 12:25:59 +00:00
svenbarth
3ca2529b58 * extend TValue.ToString for a few more types
git-svn-id: trunk@39889 -
2018-10-07 12:25:45 +00:00
svenbarth
7bb147dce0 + add TRttiMethodType for method variables and TRttiProcedureType for procedure variables
git-svn-id: trunk@39888 -
2018-10-07 12:25:42 +00:00
svenbarth
b8ae04140c * differentiate between a list of all parameters and one of only visible ones; the former is going to be used for Invoke while the latter is returned by GetParameters
git-svn-id: trunk@39887 -
2018-10-07 12:25:39 +00:00
svenbarth
0f7f9c2bb8 + add support for open arrays in TValue; this is *not* supported by Delphi
Note: open array TValue "instances" are only valid till the routine with the open array parameter has returned, but they can be converted to a dynamic array value with the help of the OpenArrayToDynArrayValue<> function

git-svn-id: trunk@39886 -
2018-10-07 12:25:36 +00:00