Dmitry Stogov
2369f48092
Infer information about packed/hash arrays and use it for JIT
2020-08-25 18:28:23 +03:00
Máté Kocsis
6c8fb123d2
Promote warnings to exceptions in ext/simplexml
...
Closes GH-6011
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
2020-08-25 15:15:58 +02:00
twosee
9f05c32704
Remove useless same_zval function
...
Closes GH-6039.
2020-08-25 18:02:38 +08:00
Nikita Popov
7a6ae9b148
Fix refcounting for the named params case as well
...
Adjust the test case to pass a refcounted value and to also check
the named params case.
2020-08-24 16:30:49 +02:00
Nikita Popov
779e904465
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix refcounting
2020-08-24 16:23:33 +02:00
Nikita Popov
bb54694f4f
Fix refcounting
2020-08-24 16:23:19 +02:00
Christoph M. Becker
5643f34a1e
Merge branch 'PHP-7.4' into master
...
* PHP-7.4:
Fix #79979 : passing value to by-ref param via CUFA crashes
2020-08-24 15:03:26 +02:00
Christoph M. Becker
6b6c2c003c
Fix #79979 : passing value to by-ref param via CUFA crashes
...
If a by-val send is not allowed, we must not do so. Instead we wrap
the value in a temporary reference.
Closes GH-6000
2020-08-24 14:08:32 +02:00
Nikita Popov
9395e01e3d
Check variadic parameter for type and duplicate name
...
Set HAS_TYPE_HINTS flag if the variadic parameter is types as well,
and make sure it has a distinct name. This was previously missed,
because the variadic parameter is not part of num_args.
2020-08-24 10:15:57 +02:00
Dmitry Stogov
5c18ee58b9
Fixed use-after-free introduced by aed1f78515
2020-08-24 09:50:54 +03:00
Christoph M. Becker
13419befff
Merge branch 'PHP-7.4' into master
...
* PHP-7.4:
Fix wrong datatype
2020-08-21 15:30:07 +02:00
Christoph M. Becker
8f9f308bb9
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix wrong datatype
2020-08-21 15:28:37 +02:00
Manuel Mausz
46d62e5464
Fix wrong datatype
...
ini_entry->modifiable is of type uint8_t and so should be the temp. variable. Especially important after 4b77a158
.
Closes GH-6028
2020-08-21 15:28:12 +02:00
Dmitry Stogov
aed1f78515
micro-optimization
2020-08-20 15:02:12 +03:00
Christoph M. Becker
ff14b7adad
7.3.23 is next
2020-08-18 09:55:37 +02:00
Nikita Popov
befe10fd21
Fix bug #78770
...
Refactor the zend_is_callable implementation to check callability
at a particular frame (this is an implementation detail for now,
but could be exposed in the API if useful). Pick the first parent
user frame as the one to check.
2020-08-14 10:24:06 +02:00
Nikita Popov
b03e300a29
Fix test after PDOStatement::fetchObject() change
2020-08-13 16:45:32 +02:00
Nikita Popov
670036e2a9
Use Z_PARAM_CLASS in PDOStatement::fetchObject()
...
Instead of implementing custom logic.
2020-08-13 16:20:29 +02:00
Tyson Andre
1e9a5c67ef
Rename standard array function parameters to $array
...
This is targeting 8.0.
`$arg` seems like a poor choice of a name,
especially if the function were to have arguments added.
In many cases, the php.net documentation already has $array for these functions.
E.g. https://www.php.net/manual/en/function.array-intersect.php
I'd assume that since named arguments was added to 8.0 near the feature freeze,
PHP's maintainers had planned to make the names consistent
and gradually use the same name for docs and implementation.
2020-08-11 19:11:59 -04:00
Ilija Tovilo
10f660f0a5
Fix ?-> in encaps vars without braces
...
Closes GH-5966.
2020-08-11 21:16:44 +02:00
Nikita Popov
e25aab6426
Fixed bug #79927
...
We need to unset the AT_FIRST_YIELD flag when yielding from an
array as well.
In the interest of being conservative, I'm applying this only to
PHP 8.
2020-08-11 15:48:40 +02:00
Nikita Popov
227f1f1481
Fix nullsafe operator on $this
2020-08-11 15:22:14 +02:00
Nikita Popov
42eda5160d
SAVE_OPLINE in NULL_HANDLER
...
Let's avoid crashing before the nice error message gets printed...
2020-08-11 15:14:50 +02:00
Nikita Popov
f491dabe40
Fix nullsafe operator on reference
...
Dereference the value before checking the type. As the happy path
necessarily has to check for references, I'm not bothering to
delay the comparison.
2020-08-11 15:11:36 +02:00
Nikita Popov
c439f1fa6a
Fixed bug #62294
...
The primary issue was already resolved in 7c3e487289
,
but the particular example used in this bug report ran into an
additional issue on PHP 8, because I forgot to drop a number of
zend_bailout calls when switch require failure to throw.
2020-08-10 12:54:02 +02:00
Nikita Popov
ee16316148
Fixed bug #79948
...
Make sure we don't execute further scripts if one of them encountered
an exit exception.
Also make sure that we free file handles that end up unused due to
an early abort in php_execute_scripts(), which turned up as an
issue in the added test case.
Finally, make use of EG(exit_status) in the places where we
zend_eval_string_ex, instead of unconditionally assigning exit
code 254. If an error occurs, the error handler will already set
exit status 255.
2020-08-10 11:15:16 +02:00
Nikita Popov
896dad4c79
Fixed bug #77561
...
Unconditionally strip shebang lines when using the CLI SAPI,
independently of whether they occur in the primary or non-primary
script. It's unlikely that someone intentionally wants to print
that shebang line when including a script, and this regularly
causes issues when scripts are used in multiple contexts, e.g.
for direct invocation and as a phar bootstrap.
2020-08-10 10:38:33 +02:00
Nikita Popov
74c4381806
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79947
2020-08-10 10:13:34 +02:00
Nikita Popov
2d087210eb
Fixed bug #79947
...
Move the FREE_OP for op_data out of the zend_binary_assign_op_dim_slow()
slow path, so it can be used by the other error path as well. This
makes ASSIGN_DIM_OP structurally more similar to ASSIGN_DIM.
2020-08-10 10:11:56 +02:00
Máté Kocsis
7aacc705d0
Add many missing closing PHP tags to tests
...
Closes GH-5958
2020-08-09 22:03:36 +02:00
Nikita Popov
8b77c58130
Accept zend_object* in zend_update_property
2020-08-07 16:40:27 +02:00
Nikita Popov
01cbb5967c
Accept zend_object* in zend_unset_property
2020-08-07 16:40:27 +02:00
Nikita Popov
978b7de244
Accept zend_object* in zend_get_exception_base
2020-08-07 16:40:27 +02:00
Nikita Popov
7991fc2753
Accept zend_object in zend_read_property
2020-08-07 16:40:27 +02:00
Máté Kocsis
af80d8a14e
Add more argument types to stubs
...
Closes GH-5943
2020-08-07 12:35:30 +02:00
Nikita Popov
fcff418411
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #79934 : CRLF-only line in heredoc causes parsing error
2020-08-06 12:04:23 +02:00
Nikita Popov
2cbc94097e
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #79934 : CRLF-only line in heredoc causes parsing error
2020-08-06 12:03:57 +02:00
Pieter van den Ham
06ade15528
Fix #79934 : CRLF-only line in heredoc causes parsing error
...
Fixes the function `next_newline()` in zend_language_scanner.l. The
function now correctly returns a newline_len of 2 for "\r\n".
Closes GH-5944.
2020-08-06 12:02:54 +02:00
Gabriel Caruso
7479ab9f80
Update API version numbers
...
In preparation for PHP 8.0.
2020-08-04 22:25:28 +02:00
Nikita Popov
0d836a39a7
Revert "Prepare for PHP 8.1"
...
This reverts commit 1ab4d0e6b7
.
This reverts commit a359635cb1
.
2020-08-04 22:24:44 +02:00
Gabriel Caruso
a359635cb1
Prepare for PHP 8.1
2020-08-04 18:46:14 +02:00
Gabriel Caruso
1ab4d0e6b7
Update API version numbers
...
In preparation for PHP 8.0.
2020-08-04 18:07:16 +02:00
Levi Morrison
9b975fe98e
Merge branch 'levim/assert-throw'
...
This changes assert.exception to default to 1, or on by default.
Closes GH-5925.
2020-08-03 08:04:48 -06:00
Nikita Popov
dc1107ba5b
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Removed space from bug55086.phpt
2020-08-03 15:14:36 +02:00
Graham Campbell
f3a43e85e7
Removed space from bug55086.phpt
...
Closes GH-5923.
2020-08-03 15:14:15 +02:00
Nikita Popov
c48b745f00
Promote "undefined array key" notice to warning
...
This implements the last remaining part of the
https://wiki.php.net/rfc/engine_warnings RFC.
Closes GH-5927.
2020-08-03 14:40:50 +02:00
Nikita Popov
bb8b95be63
Fix bug #79925
...
If the expected return type of a magic method is "object", we also
need to allow class types and "static" to comply with covariance.
2020-08-03 10:35:26 +02:00
Nikita Popov
5d4659c25c
Enforce __set_state() parameter type
...
This fixes one of the issues reported in bug #79925 . The parameter
type check for this particular method was missed.
2020-08-03 10:23:06 +02:00
Nikita Popov
a4c015b4b2
Fix handling of nullsafe method in empty()
...
Fixes oss-fuzz #24627 .
2020-08-03 10:16:38 +02:00
tangl163
7d4ae7fa23
Drop the unneeded pointer casting
...
The standard says that "A pointer to void may be converted to or from a
pointer to any object type". So the casting is unneeded.
REF:
* c11: http://port70.net/~nsz/c/c11/n1570.html#6.3.2.3p1
* c99: http://port70.net/~nsz/c/c99/n1256.html
Closes GH-5916
2020-08-03 02:05:14 +01:00