svenbarth
|
45479302c1
- ValueToFFIValue is no longer needed
|
6 lat temu |
svenbarth
|
9fa4a619d7
+ add support for callbacks to the FFI invoke manager
|
6 lat temu |
svenbarth
|
0d6d3a1529
* for callbacks argument values are not needed, so make the need for aArgValues optional
|
6 lat temu |
svenbarth
|
1c58ef49f3
* directly use the indirection information instead of calculating it a second time in ValueToFFIValue()
|
6 lat temu |
svenbarth
|
68c9b83d87
* for callbacks it's needed to know whether an argument is indirect or not
|
6 lat temu |
svenbarth
|
5516bcb266
* move check for argument/result indirection to separate function
|
6 lat temu |
svenbarth
|
ea270d9800
* move creation of the CIF object to a separate function in preparation for callbacks
|
6 lat temu |
svenbarth
|
4e0cc65c63
* correctly handle untyped parameters
|
6 lat temu |
svenbarth
|
9e9aca6fea
* correctly handle Comp and Currency parameters as well as results (at least on the X86 platforms :/ )
|
6 lat temu |
svenbarth
|
04f681d7c6
* directly pass the pointer to the result value; avoids an unnecessary copy operation
|
6 lat temu |
svenbarth
|
9a23613b9d
* rework low level callback API
|
6 lat temu |
svenbarth
|
91899c7bb1
* ensure that the elements field of ffi_type is initialized correctly so that the trick with the dynamic array works correctly
|
7 lat temu |
svenbarth
|
3bdb4aa1a2
* correctly handle ShortString, object and array fields that are part of a record/object
|
7 lat temu |
svenbarth
|
b91c856e38
* also take param flags into consideration
|
7 lat temu |
svenbarth
|
00e700d598
* adjust Invoke API of FunctionCallManager to not rely on TValue
|
7 lat temu |
svenbarth
|
76a95f61e2
* fix warning about result not being initialized
|
7 lat temu |
svenbarth
|
17ebe6e28f
* also move to the next field when skipping it
|
7 lat temu |
svenbarth
|
5edbdd5a00
* correctly handle non-static functions where the result is passed as a parameter (the order is "Self/VMT, Result, other Args" there)
|
8 lat temu |
svenbarth
|
135b5de410
+ add function call manager based on libffi; currently only tested on x86_64-linux; all other targets need to be explicitely tested before being enabled
|
8 lat temu |