Dmitry Stogov
b5e2b64adc
Fix deoptimization info and corresponding memory leaks
2020-07-21 22:58:24 +03:00
Dmitry Stogov
b44169e9dd
Fixed bug #79864 (JIT segfault in Symfony OptionsResolver)
2020-07-21 20:54:33 +03:00
Máté Kocsis
69a5c561d0
Improve argument types and names in ext/ctype
...
Closes GH-5878
2020-07-21 16:40:47 +02:00
Nikita Popov
df2749da70
Tweak zend_test arginfo/zpp
2020-07-21 15:33:01 +02:00
Nikita Popov
1d4e229ab7
Fix incorrect initialization in date_sunrise()
2020-07-21 15:33:01 +02:00
Dmitry Stogov
0e1e991a89
Switch to tracing JIT by default
2020-07-21 16:15:11 +03:00
Nikita Popov
f7f557926e
Fix arg/func info
...
* mysqli_get_server_info() cannot return null. The underlying API
is infallible.
* mysqli_select_db() func info is redundant.
* mb_detect_order() can only return array|true, not array|false.
Also make the func_info.phpt test that is supposed to catch these
kinds of issues actually work.
2020-07-21 15:00:33 +02:00
Máté Kocsis
5770b66722
Cleanup argument handling of Zend functions and methods
...
Closes GH-5847
2020-07-21 14:47:03 +02:00
Remi Collet
42226fcf03
add ZipArchive::CM_XZ constant (in upcoming libzip 1.8.0)
2020-07-21 14:43:52 +02:00
Dmitry Stogov
7686118212
Fix type recording and side exit information for FE_FETCH_* instructions
2020-07-21 15:39:13 +03:00
Dmitry Stogov
be0d912674
Avoid recording of uninitialized variable
2020-07-21 14:11:19 +03:00
Nikita Popov
ae2b214be2
Check for redundant func info
2020-07-21 13:01:12 +02:00
Nikita Popov
ac56ca0dcc
Separate __call and __soapCall implementations
...
This is overly pedantic, but allows us to enable more arginfo
consistency checks.
2020-07-21 12:59:28 +02:00
Nikita Popov
4dd8fec073
Add stubs for PDO PGSql extension methods
2020-07-21 12:49:37 +02:00
Nikita Popov
1afcced1f0
Add stubs for PDO SQLite extension methods
...
Putting these under a dummy PDO_SQLite_Ext class.
2020-07-21 12:49:36 +02:00
Nikita Popov
4ce9571978
Fix UConvert::getErrorMessage() leak on zpp failure
2020-07-21 12:05:44 +02:00
Nikita Popov
ae81549048
Move SOAP_SERVER_BEGIN_CODE() after zpp
...
This is still very dubious, because there are lots of other "returns"
between the BEGIN and END -- won't that end up not restoring the
original state?
2020-07-21 12:05:42 +02:00
Nikita Popov
b3ea6ce720
Make ReflectionGenerator final
...
This class is not safe against malicious extension / instantiation.
2020-07-21 11:53:00 +02:00
Nikita Popov
3a9036ac54
Stricter verification of func info against arg info
...
Make sure they're actually the same up to cases where func info
allows more accurate expressions. There are some awkward edge cases
around true/false/null limitations in union types.
2020-07-21 11:47:52 +02:00
Dmitry Stogov
447a098ebb
Switch to tracing JIT by default
2020-07-21 12:22:36 +03:00
Dmitry Stogov
bb9e3dd6cc
Use different temporary register
2020-07-21 12:21:47 +03:00
Nikita Popov
e4c1366b63
Remove some redundant func info
...
This is fully covered by arginfo.
The array_merge_recursive() RC information was also wrong,
it should be the same as array_merge().
2020-07-21 11:10:07 +02:00
Dmitry Stogov
e527478c3d
Fixed support for 64-bit constants
2020-07-21 11:49:15 +03:00
Nikita Popov
33ddc3bb96
Fix mb_ereg_search* arg and func info
2020-07-21 10:40:08 +02:00
Nikita Popov
da4262df6f
Fix readline test after callback changes
...
This one requires libedit and was probably missed for that reason.
2020-07-21 10:40:08 +02:00
Nikita Popov
be9c5daf28
Remove null from highlight_* return types
...
Also fix show_source() discrepancy in func_info.
2020-07-21 10:40:08 +02:00
Nikita Popov
9d37a57411
Remove bool return type from assert_options
...
Not seeing any way this function can return bool.
2020-07-21 10:18:33 +02:00
Nikita Popov
fda78e5965
Fix iptcembed func info
...
This function can return true with $spool >= 2.
2020-07-21 10:18:33 +02:00
Nikita Popov
2160f5ce59
Call zpp_none in PharFileInfo::__destruct()
...
Using __destruct() with internal classes is dubious, but not so
simple to avoid here because the code extends SPL classes.
2020-07-21 10:18:33 +02:00
Dmitry Stogov
91d4d2443f
Fixed pg_select() function info
2020-07-21 09:58:36 +03:00
George Peter Banyard
d9330fc67e
Use ZPP callable check in readline extension
2020-07-21 00:52:50 +01:00
George Peter Banyard
a1097677a5
Use ZPP callable for PDO Sqlite
2020-07-21 00:20:02 +01:00
Dmitry Stogov
7cfb141f9d
Fixed tracing JIT exception handling
2020-07-21 01:49:01 +03:00
Máté Kocsis
19bf66a9e4
Explode _php_image_output_ctx() into multiple functions
...
Closes GH-5844
2020-07-20 23:25:02 +02:00
Dmitry Stogov
774bc760af
Fixed VM interrupt handling
2020-07-20 23:14:23 +03:00
Dmitry Stogov
4b13985f25
Keep CPU regesters used by deoptimizer
2020-07-20 21:04:14 +03:00
Dmitry Stogov
2b7035e824
Fixed tracing JIT for VM without global register variables
2020-07-20 20:59:31 +03:00
Nikita Popov
236ddc56a2
Preserve original ce_flags when registering class
...
Bug that regularly sneaks in: ZEND_ACC_FINAL is set before calling
zend_register_internal_class() and promptly gets ignored. Remove
this footgun by preserving flags from the original CE.
2020-07-20 17:00:04 +02:00
Nikita Popov
777aa9163d
Fetch pdo stmt after zpp
2020-07-20 16:27:46 +02:00
Nikita Popov
9ee16a3c12
Update method signature in test
2020-07-20 16:16:37 +02:00
Nikita Popov
7d3e530f4e
Use zpp for PDO fetch mode
...
Also changing the function signatures to accept variadic args
for the fetch params. If we're already breaking Doctrine anyway,
we may as well do it properly.
2020-07-20 16:05:33 +02:00
Nikita Popov
6f8d0ba0dd
Fix bug #79868
...
This simply restores the code from PHP 7.4 which I incorrectly
"simplified" in master.
2020-07-20 15:15:23 +02:00
Christoph M. Becker
05e9197c51
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #63527 : DCOM does not work with Username, Password parameter
2020-07-20 14:45:42 +02:00
Christoph M. Becker
4b96a75ffd
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #63527 : DCOM does not work with Username, Password parameter
2020-07-20 14:44:18 +02:00
Christoph M. Becker
b2e3fd1e69
Fix #63527 : DCOM does not work with Username, Password parameter
...
We must not mix multibyte and wide character strings in the
`COAUTHIDENTITY` structure. Using wide character strings throughout
would have the advantage that the remote connection can be established
regardless of the code page of the server, but that would more likely
break BC, so we just drop the wide character string conversion of the
username.
2020-07-20 14:43:29 +02:00
Dmitry Stogov
d67adc39a0
Fixed incorrect deoptimization info
2020-07-20 13:49:46 +03:00
Dmitry Stogov
9f0213fff3
Remove old code (BP_VAR_RW warning)
2020-07-20 11:57:19 +03:00
Nikita Popov
015fc638fb
Fix tests I missed before
2020-07-20 10:54:59 +02:00
Christopher Jones
74ca2a39a7
Rename OCI8 classes to use standard names so arg stub parsing works
2020-07-20 18:06:20 +10:00
Christopher Jones
8058776295
Bump OCI8 version to 3.0 so a PHP 8 PECL release can be made
2020-07-20 18:06:19 +10:00