Dmitry Stogov
66f2ebe448
Register allocator refactoring
2020-04-09 19:31:18 +03:00
Nikita Popov
fcc6da3e42
Mark $time argument of touch() as UNKNOWN as well
...
For some reason I thought that passing 0 is same as current time,
but that's not the case.
2020-04-09 16:54:42 +02:00
Nikita Popov
c10f30fdf9
Mark spl_autoload_register function arg as UNKNOWN
...
Not passing any parameters to this function has magic behavior.
2020-04-09 16:54:40 +02:00
Nikita Popov
8a5b9cbc9f
Fix mysqli_get_client_info() stub
...
The dummy link argument is not nullable.
2020-04-09 16:54:39 +02:00
Nikita Popov
636c827aa2
Mark fgets() argument as UNKNOWN
...
If no value is passed, this reads as much as necessary, not 1024
bytes.
2020-04-09 16:22:34 +02:00
Christoph M. Becker
62e8dcbc48
Change parameter default to always available value
...
`SIGTERM` is only defined in ext/pcntl, and as such never available on
Windows. Moving the constant to ext/standard does not make much sense,
because that parameter is actually unused on Windows. Therefore, we
use the magic number `15` instead, what is also done in the PHP manual.
2020-04-09 16:15:47 +02:00
Nikita Popov
87ba975e31
Make touch() $atime parameter UNKNOWN
...
The actual default here is $time, not 0.
2020-04-09 16:11:17 +02:00
Nikita Popov
258c4dfdb2
Mark rand/mt_rand args as UNKNOWN
...
The second argument should be mt_getrandmax(), not PHP_INT_MAX.
Additionally this function only accepts either zero or two arguments,
so err on the side of being conservative and mark both UNKNOWN.
2020-04-09 16:10:56 +02:00
Nikita Popov
1dcb559664
Mark array_walk $userdata arg as UNKNOWN
...
It makes a difference whether this arg is not passed or is null.
2020-04-09 16:10:39 +02:00
Nikita Popov
b3f3a80f9c
Make stream_socket_enable_crypto() session stream nullable
2020-04-09 16:10:33 +02:00
Nikita Popov
217dfc0832
Accept null context in stream_socket_(client|server)
2020-04-09 16:10:27 +02:00
Nikita Popov
2d1bf6970d
Add Z_PARAM_RESOURCE_OR_NULL()
...
As a more explicit alternative to Z_PARAM_RESOURCE_EX(, 1, 0).
2020-04-09 15:39:11 +02:00
Nikita Popov
d030ddb2cd
Export the zend_string_concat3() API
2020-04-09 15:06:53 +02:00
Nikita Popov
696ae335e3
Export API for fetching internal func default
...
Make this functionality available outside reflection.
2020-04-09 14:55:55 +02:00
Christoph M. Becker
175e5ed4bf
Fix typo (UNKOWN -> UNKNOWN)
2020-04-09 14:06:11 +02:00
George Peter Banyard
12ec7a2730
Convert if blocks to assertions and adapt stubs accordingly
2020-04-09 13:50:37 +02:00
George Peter Banyard
73455778d4
Cache MBFL encoding for Oniguruma regex functions.
...
Closes GH-5355
2020-04-09 13:48:55 +02:00
Dmitry Stogov
41c2b275f7
cleanup
2020-04-09 14:33:29 +03:00
Dmitry Stogov
ba64b3fd41
Don't get number of passed arguments from "fake" INIT frames
2020-04-09 13:38:40 +03:00
Christoph M. Becker
e6458d67cf
Fix #79462 : method_exists and property_exists incoherent behavior
...
Both functions are closely related, so should behave the same for wrong
input types, i.e. both should throw a TypeError.
2020-04-09 11:38:47 +02:00
Nikita Popov
12324364f7
Add test to make sure internal param default eval doesn't error
2020-04-09 11:22:55 +02:00
Máté Kocsis
3709e74b5e
Store default parameter values of internal functions in arg info
...
Closes GH-5353. From now on, PHP will have reflection information
about default values of parameters of internal functions.
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com >
2020-04-08 18:37:51 +02:00
Nikita Popov
5293c6d6d4
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Make mysqli_poll test more deterministic
2020-04-08 16:38:18 +02:00
Nikita Popov
5317ea6d57
Make mysqli_poll test more deterministic
...
Handle errors appearing in different order.
2020-04-08 16:36:22 +02:00
Nikita Popov
3ea94ed78e
Fix typo in GD stub
2020-04-08 12:03:14 +02:00
Nikita Popov
38d93262a0
Update mb_strrpos() stub
...
We no longer accept the encoding as 3rd param, so we can make this
a proper int argument.
2020-04-08 12:03:14 +02:00
Dmitry Stogov
3042b2b201
Dump information about trace side exits
2020-04-08 12:39:24 +03:00
Christoph M. Becker
d4f9d54f1a
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix memory leak introduced by fixing bug #78221
2020-04-08 10:37:28 +02:00
Christoph M. Becker
c3ee9d1bb7
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix memory leak introduced by fixing bug #78221
2020-04-08 10:36:57 +02:00
Christoph M. Becker
7e91fcd7f9
Fix memory leak introduced by fixing bug #78221
...
We have to free the retrieved text content; to keep the code readable,
we extract a helper function to check for empty nodes. Unfortunately,
we cannot use xmlIsBlankNode(), because that also recognizes whitespace
only text content.
We also make sure to properly handle NULL returns from
xmlNodeGetContent().
2020-04-08 10:35:54 +02:00
Nikita Popov
8ff1991503
Fix test
2020-04-08 09:41:14 +02:00
Dmitry Stogov
f915b5516c
Update stack type, only if necessary
2020-04-08 10:34:24 +03:00
Dmitry Stogov
a172e056a0
Fixed TYPE/INFO mismatch
2020-04-08 00:27:19 +03:00
George Peter Banyard
1e8459d626
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Revert "Went to fast and forgot to update tests"
Revert "Fix Bug #79448 0 is a valid Unicode codepoint, but mb_substitute_character(0) fails"
2020-04-07 22:49:17 +02:00
George Peter Banyard
9b98cf3209
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Revert "Went to fast and forgot to update tests"
Revert "Fix Bug #79448 0 is a valid Unicode codepoint, but mb_substitute_character(0) fails"
2020-04-07 22:27:00 +02:00
George Peter Banyard
a0df5f3b54
Revert "Went to fast and forgot to update tests"
...
This reverts commit 656eac74fa .
2020-04-07 22:24:40 +02:00
George Peter Banyard
6031b08240
Revert "Fix Bug #79448 0 is a valid Unicode codepoint, but mb_substitute_character(0) fails"
...
This commit brings some substantial changes in behaviour due to the weird implementation.
This will be fixed in master due to BC concerns.
This reverts commit 1333b46d6d .
2020-04-07 22:23:24 +02:00
Dmitry Stogov
4e69970fb7
cleanup
2020-04-07 21:37:10 +03:00
Dmitry Stogov
cff7703a61
Revert "cleanup" (wrong commit)
...
This reverts commit 5db5f71f28 .
2020-04-07 21:34:18 +03:00
Dmitry Stogov
5db5f71f28
cleanup
2020-04-07 21:30:47 +03:00
Nikita Popov
07e739a2d5
Remove most uses of _default_get_name()
...
Instead fetch the name from the respective structure. The only
place where this is still used is ReflectionClassConst,
as zend_class_const does not store the name.
2020-04-07 16:42:40 +02:00
Nikita Popov
ab73d142c9
Eliminate uses of _default_load_name()
...
Instead fetch the name from the function/class/property,
as appropriate. This makes us independent of the property,
and eliminates error conditions related to it.
2020-04-07 16:25:44 +02:00
Nikita Popov
425c6f5815
Optimize internal name fetching in reflection
...
Directly fetch the name property, instead of construction the
properties hash table and performing a lookup in it. This is both
slow and wastes a lot of memory.
2020-04-07 16:10:19 +02:00
Nikita Popov
c81cf1c7af
Assert that arginfo parameter name is present
2020-04-07 16:05:33 +02:00
Christoph M. Becker
68139dbdd8
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #78221 : DOMNode::normalize() doesn't remove empty text nodes
2020-04-07 13:09:10 +02:00
Christoph M. Becker
13c9572a79
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #78221 : DOMNode::normalize() doesn't remove empty text nodes
2020-04-07 13:07:33 +02:00
Christoph M. Becker
efec22b7be
Fix #78221 : DOMNode::normalize() doesn't remove empty text nodes
...
If a text node is not followed by another text node, we remove it, if
its textContent is empty.
2020-04-07 13:04:14 +02:00
Dmitry Stogov
864b1cc3ef
Free room for information about register allocation at astact stack and at trace_exit_info. Implement simple deoptimizer.
2020-04-07 12:01:48 +03:00
Dmitry Stogov
4006c0008e
Save CPU regesters on side exit for deoptimization
2020-04-06 23:48:20 +03:00
Dmitry Stogov
c4bdf41862
Minor register allocator refactoring
2020-04-06 16:17:02 +03:00