Christoph M. Becker
ce047e6091
Fix test case for Windows
2019-11-11 12:49:32 +01:00
Dmitry Stogov
ecd0c5b6ad
Fixed bug #78714 (funcs returning pointer can't use call convention spec)
2019-11-11 12:07:48 +03:00
Christoph M. Becker
0055f1e3dc
Fix #78761 : Zend memory heap corruption with preload and casting
...
We have to reset `FFI_G(persistent)` back to zero when preloading has
finished.
2019-10-30 19:49:39 +01:00
Christoph M. Becker
1e2d3d58a8
Fix #78762 : Failing FFI::cast() may leak memory
...
We have to release objects when we're done with them.
2019-10-30 17:21:58 +01:00
Christoph M. Becker
22523958f4
Skip test case on non Windows platforms
2019-10-29 10:05:31 +01:00
Christoph M. Becker
bedbecf56d
Implement #78270 : Support __vectorcall convention with FFI
...
To work around the limitation of the current rudimentary vectorcall
support in our patched libffi, we forbid yet unsupported declarations,
i.e. float/double parameters at certain positions (SIMD vector types
and HVA types are not supported anyway).
2019-10-29 08:57:43 +01:00
Dmitry Stogov
fea8c5481b
Added suppot for glob() wildcard matching in ffi.preload directive
2019-10-24 07:40:07 +02:00
Dmitry Stogov
c744531fff
Ignore ZEND_FFI_TYPE_OWNED flag
2019-10-23 19:50:58 +03:00
Remi Collet
dcd772325d
add new ffi.preload option in php.ini and display ini entries in MINFO
2019-10-23 07:49:13 +02:00
Christoph M. Becker
598bf7f5d5
Fix typo
2019-10-22 17:53:34 +02:00
Dmitry Stogov
1417352dda
Allow loading FFI bindings through ffi.preload directive
2019-10-22 17:52:56 +03:00
Christoph M. Becker
1c9bfcb6a7
Fix #78716 : Function name mangling is wrong for some parameter types
...
We have to cater to function parameter alignment when calculating the
parameter size.
2019-10-22 11:38:58 +02:00
Christoph M. Becker
9dfbcd7248
Fix #78543 : is_callable() on FFI\CData throws Exception
...
If `Z_OBJ_HANDLER_P(callable, get_closure)` throws, we must not let the
exeception pass to userland, if called through `is_callable()`.
2019-09-19 09:13:22 +02:00
Nikita Popov
d266ba4f2d
Check for exception after calling count_values()
...
To avoid a duplicate error if count_values() throws.
2019-09-17 13:13:44 +02:00
Dmitry Stogov
5f555fb19e
Fixed bad format string
2019-09-11 00:52:54 +03:00
Dmitry Stogov
21c3cdf668
NEWS entry, test and minor cleanup for FFI::isNull()
2019-09-10 11:23:12 +03:00
Philip Hofstetter
f6ff7eb335
add FFI::isNull() to check whether a FFI\CData is a null pointer
2019-09-10 11:03:51 +03:00
Dmitry Stogov
ea92b9b655
Stop after exceptions
2019-09-10 11:01:36 +03:00
Dmitry Stogov
1db0bad6a7
Fixed bug #78488 (OOB in ZEND_FUNCTION(ffi_trampoline)).
2019-09-04 12:16:12 +03:00
Christoph M. Becker
1ed9ebdea5
Support calling convention specific function name mangling
...
On Windows certain calling conventions cause C function names to be
mangled, so to import them we have to use the properly mangled names.
2019-08-04 12:14:11 +02:00
Christoph M. Becker
07286d2fb4
Document how to generate ffi_parser.c
2019-07-29 13:38:53 +02:00
Peter Kokot
81fd1c5206
Fix typos in FFI
...
Closes GH-4438
2019-07-19 23:07:04 +02:00
Nikita Popov
0f3ca15bb7
FFI: Perform bitfield operations byte-wise
...
Otherwise we may perform reads/writes outside the allocation, as
already happens in 032.phpt.
2019-06-25 14:28:58 +02:00
Nikita Popov
f127d77eef
FFI: Use signed arithmetic for pointer offset
...
offset can be negative here, using signed arithmetic avoids ubsan
warnings.
2019-06-20 16:22:26 +02:00
Dmitry Stogov
938d2359ae
Remove XFAIL mark
2019-06-17 14:56:28 +03:00
Dmitry Stogov
eda916cc98
Avoid uninitilized field access
2019-06-17 14:53:44 +03:00
Dmitry Stogov
1e0b0467b6
Fixed memory leaks in ext/ffi/tests/100.phpt on Mac OSX
2019-06-17 14:40:19 +03:00
Joe Watkins
f16b012116
fix mac tests on azure
2019-06-14 12:55:00 +02:00
Hugh McMaster
7ec50c24bb
ext/ffi: Remove symbol check for ffi_open
...
Closes GH-4215.
2019-06-03 09:19:25 +02:00
Dmitry Stogov
83804519df
Replace ZVAL_COPY() and ZVAL_COPY_VALUE() for IS_OBJECT by cheaper macros
2019-05-28 20:10:02 +03:00
Dmitry Stogov
6738241aec
Avoid usage of internal get/set object handlers. They are going to be removed in PHP-8.
...
Scalar FFI values now should be accessed through special "cdata" property.
$x = FFI::new("int");
$x = 42;
should be changed into
$x = FFI::new("int");
$x->cdata = 42;
2019-05-28 17:08:35 +03:00
Peter Kokot
e7a1409fe1
Define minimum required libffi version
2019-05-25 08:12:15 +02:00
Dmitry Stogov
9b18afcbca
Fixed test on platforms that don't support fastcall calling convention
2019-05-14 00:21:00 +03:00
Dmitry Stogov
49de3ce3ca
Check for supported libffi ABI
2019-05-13 15:15:51 +03:00
Peter Kokot
75fb74860d
Normalize comments in *nix build system m4 files
...
Normalization include:
- Use dnl for everything that can be ommitted when configure is built in
favor of the shell comment character # which is visible in the output.
- Line length normalized to 80 columns
- Dots for most of the one line sentences
- Macro definitions include similar pattern header comments now
2019-05-12 18:43:03 +02:00
Peter Kokot
4bfb86cdca
Remove ffi README in favour of docs
...
- https://www.php.net/manual/en/book.ffi.php
- The FFI C parser is mentioned in the CONTRIBUTING.md file
2019-05-11 14:51:14 +02:00
Peter Kokot
05350e621b
Remove example PHP script from FFI
...
FFI README.md already includes the PHP example with more information.
2019-05-08 21:55:59 +02:00
Nikita Popov
645ebcdfbf
Avoid some maybe uninitialized warnings in ffi
...
All false positives.
2019-05-07 15:44:22 +02:00
Hugh McMaster
cc9c5d8057
Use PKG_CHECK_MODULES to detect the ffi library
2019-05-07 14:28:33 +02:00
Peter Kokot
361d0b3426
Convert CRLF line endings to LF
...
This patch simplifies line endings tracked in the Git repository and
syncs them to all include the LF style instead of the CRLF files.
Newline characters:
- LF (\n) (*nix and Mac)
- CRLF (\r\n) (Windows)
- CR (\r) (old Mac, obsolete)
To see which line endings are in the index and in the working copy the
following command can be used:
`git ls-files --eol`
Git additionally provides `.gitattributes` file to specify if some files
need to have specific line endings on all platforms (either CRLF or LF).
Changed files shouldn't cause issues on modern Windows platforms because
also Git can do output conversion is core.autocrlf=true is set on
Windows and use CRLF newlines in all files in the working tree.
Unless CRLF files are tracked specifically, Git by default tracks all
files in the index using LF newlines.
2019-05-07 04:40:01 +02:00
Peter Kokot
426bcdf021
Fix double incremenation in ffi
...
This removes the warning of:
`incremented both in the loop header and in the loop body` in the
compilation step.
2019-05-06 09:45:11 +03:00
Christoph M. Becker
30409d6753
Properly initialize variable
...
Not all code paths assign to `handle`, even though it may be used, so
we make sure that it is initialized to a sane value in the first place.
2019-05-05 17:49:54 +02:00
Christoph M. Becker
a760c79f1e
Fix typo
2019-05-05 15:40:33 +02:00
Hugh McMaster
c9ee822bb6
Always use pkg-config from the host architecture
2019-04-29 14:16:16 +02:00
Peter Kokot
1c94aac89e
[ci skip] Fix CS in Markdown files
...
Checked and quickfixed with Markdown linter
- 80 columns line width (~)
- code highlighting
- ...
Some most obvious outdated content updated a bit more.
2019-04-21 15:33:20 +02:00
Dmitry Stogov
a5e86d8264
Fixed ext/ffi/tests/044.phpt failure on 32-bit Linux
2019-04-09 16:12:13 +03:00
Anatol Belski
039500adb6
Fix handling and extend ext/ffi/tests/044.phpt
2019-03-30 12:53:32 +01:00
Dmitry Stogov
61ad294f26
Partial support for GCC mode attribute.
2019-03-29 17:28:57 +03:00
Dmitry Stogov
a2b39aa0de
Fixed memory leaks
2019-03-29 14:33:49 +03:00
Dmitry Stogov
24fa2008dd
Allow usage of incomplete types for external variables, function parameters and return values
2019-03-29 14:14:56 +03:00