Nikita Popov
e45f7053cf
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79793
2020-07-07 16:33:06 +02:00
Nikita Popov
77acc8a069
Fixed bug #79793
...
Make sure the string key is not released while throwing the
undefined index warning.
2020-07-07 16:29:48 +02:00
Nikita Popov
beb002a867
Fixed bug #79791
...
First throw the undefined variable warning, and then set the
variable to null. Otherwise we're not guaranteed that it's
actually null afterwards.
2020-07-07 16:00:50 +02:00
Nikita Popov
6259eff352
Handle dim_w undefined variable notice in JIT as well
2020-07-07 15:30:43 +02:00
Nikita Popov
0e6ec974fb
Check for undef variable exception in SEND_VAR JIT
...
Add a return value to zend_jit_undefined_op_helper(), so we can
check for exception based on the return value, instead of fetching
EG(exception).
2020-07-07 15:22:46 +02:00
Nikita Popov
cdc4ea2a5c
JIT support for undefined index/offset handling
2020-07-07 15:13:03 +02:00
Nikita Popov
f497b69944
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79784
2020-07-07 14:24:39 +02:00
Nikita Popov
62bec0e083
Fixed bug #79784
...
The fix here is essentially the same as for bug #78598 , just for
the undefined variable notice, rather than the undefined index one.
2020-07-07 14:22:58 +02:00
Christoph M. Becker
3595ebcd26
[ci skip] Merge branch 'PHP-7.4'
...
* PHP-7.4:
Don't use deprecated curly brace offset syntax
2020-07-07 13:57:58 +02:00
Christoph M. Becker
b0014adb02
[ci skip] Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Don't use deprecated curly brace offset syntax
2020-07-07 13:56:47 +02:00
Christoph M. Becker
f23bd48892
Don't use deprecated curly brace offset syntax
...
(cherry picked from commit 7ec3aa1871 )
Better safe than sorry in case someone ever builds PHP 7.3 with a
future version of PHP SDK with bundled PHP 8.
2020-07-07 13:55:08 +02:00
Christoph M. Becker
af32f96c23
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Don't use deprecated curly brace offset syntax
2020-07-07 13:26:42 +02:00
Christoph M. Becker
7ec3aa1871
Don't use deprecated curly brace offset syntax
2020-07-07 13:24:41 +02:00
Nikita Popov
2c73bf7e3f
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78598
2020-07-07 12:28:35 +02:00
Nikita Popov
220880ad2d
Fixed bug #78598
...
When performing an RW modification of an array offset, the undefined
offset warning may call an error handler / OB callback, which may
destroy the array we're supposed to change. Detect this by temporarily
incrementing the reference count. If we find that the array has been
modified/destroyed in the meantime, we do nothing -- the execution
model here would be that the modification has happened on the destroyed
version of the array.
2020-07-07 12:13:58 +02:00
Nikita Popov
ecf368b8f2
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79792
2020-07-07 12:00:34 +02:00
Nikita Popov
48a247178e
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed bug #79792
2020-07-07 11:59:40 +02:00
Nikita Popov
64931fd3c4
Fixed bug #79792
...
We need to remove the iterators even if the array is empty (we
will not create one if the first place, but the array may become
empty after the fact).
2020-07-07 11:58:25 +02:00
Nikita Popov
b48bd671b8
Assert no exception if using NEXT_OPCODE()
...
When NEXT_OPCODE() is used instead of NEXT_OPCODE_CHECK_EXCEPTION(),
assert that there is indeed no exception.
2020-07-07 11:34:43 +02:00
Nikita Popov
5d0687e895
Assert exception set in HANDLE_EXCEPTION()
...
Some code paths were checking this manually, but we can turn this
into a general assertion to avoid surprises (functions returning
failure without throwing).
2020-07-07 11:31:05 +02:00
Nikita Popov
fb91611276
Remove #undefs from vm_gen
...
Possibly these were needed for VM_EXPORT, but they don't serve a
purpose now.
2020-07-07 11:25:28 +02:00
Nikita Popov
002c264d07
Remove ZEND_VM_EXPORT functionality
...
This hasn't been used since forever and makes things more confusing
than they already are.
2020-07-07 11:23:28 +02:00
Nikita Popov
eaf6303a74
Fixed bug #79790
...
I haven't tracked down in detail where the interaction with
increment_function comes from, but the root problem here is failure
to handle the illegal offset type exception.
2020-07-07 10:56:55 +02:00
Nikita Popov
e0743d0f91
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79779
2020-07-07 10:27:53 +02:00
Nikita Popov
6a9d934b2c
Fixed bug #79779
...
ASSIGN_OBJ_REF was not handling in zend_wrong_string_offset.
2020-07-07 10:27:22 +02:00
Nikita Popov
7da8c48a9b
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79778
2020-07-07 10:20:31 +02:00
Nikita Popov
d9b4974cbc
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed bug #79778
2020-07-07 10:20:11 +02:00
Nikita Popov
b765f96f5f
Fixed bug #79778
...
In the interest of avoiding side-effects during dumping, I'm
replacing the value with a <constant ast> string instead of
performing an update constant operation.
2020-07-07 10:19:39 +02:00
Nikita Popov
1e39469678
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79783
2020-07-07 09:57:07 +02:00
Nikita Popov
971e5c5186
Fixed bug #79783
...
Make sure we don't drop the by-reference check when passing the
result of a VM builtin function.
2020-07-07 09:56:14 +02:00
Nikita Popov
302933daea
Remove no_separation flag
2020-07-07 09:30:24 +02:00
Nikita Popov
e93aca7167
Explicitly create references in UConverter callbacks
...
And don't allow separation.
2020-07-07 09:29:21 +02:00
Nikita Popov
5b4bf4d3e9
Fixup test
2020-07-07 09:23:05 +02:00
Nikita Popov
dadb92ea35
Don't allow separation in array functions
...
The only case here that might be *somewhat* sensible is the userdata
argument of array_walk(), which could be used to keep persistent state
between callback invokations -- with the WTF moment that the final
result after the walk finishes will be unchanged. Nowdays, this is
much better achieved using a closure with a use-by-reference.
2020-07-07 09:15:43 +02:00
Nikita Popov
df8119d3e1
Don't allow separation in CallbackFilterIterator
...
As the name might suggest, this is a *filter* iterator. If you want
to have a *map* iterator, write one, or use a generator.
2020-07-07 09:04:20 +02:00
Nikita Popov
632766a561
Disallow separation in a number of callbacks
...
All of these clearly do not need separation support.
2020-07-07 09:02:24 +02:00
Nikita Popov
b406b3d624
Don't allow separation in callback filter
...
This causes some tests to fail. Those tests are specifically about
the callback not being able to modify the data though, so this is
clearly not supposed to be a supported use-case.
2020-07-07 08:57:05 +02:00
Gabriel Caruso
829a1e653a
Update NEWS for 8.0.0alpha3
2020-07-07 02:32:35 +00:00
Gabriel Caruso
73f4441d0f
Update NEWS for PHP 8.0.0alpha2
2020-07-07 02:23:24 +00:00
George Peter Banyard
c4a0ba8d6e
Refactor levenshtein()
...
Closes GH-5816
2020-07-07 00:41:10 +02:00
Máté Kocsis
91fbd12d57
Fix a few comments
2020-07-06 21:23:35 +02:00
Max Semenik
2b5de6f839
Remove proto comments from C files
...
Closes GH-5758
2020-07-06 21:13:34 +02:00
Max Semenik
4757998650
Remove requirements for proto comments from CODING_STANDARDS
...
They've been made obsolete by .stub.php files and are often
outdated as they're not the source of truth.
2020-07-06 21:13:14 +02:00
Nikita Popov
0280b83e11
Avoid some unnecessary uses of no_separation=0
...
For the rare cases where references are part of the API,
construct them explicitly. Otherwise do not allow separation.
2020-07-06 19:05:57 +02:00
moliata
4a0d6901bb
refactor: class constants parsing
...
As part of my work on typed class constants, I wanted to make a
separate pull request for unrelated changes.
These include:
* Moving from ast->child[0]->attr to ast->attr
* Making zend_ast_export_ex() export class constants' visibility
* Extracting an additional zend_compile_class_const_group() function
Closes GH-5812.
2020-07-06 18:34:41 +02:00
Dmitry Stogov
ff3c40206c
More accurate reference-counter inference
2020-07-06 17:55:23 +03:00
Dmitry Stogov
b35255ad21
More accurate reference-counter inference
2020-07-06 15:53:28 +03:00
Tiffany
48eb635a0f
[skip-ci] Add README for ext/mysqli tests
...
Closes GH-5804
2020-07-06 14:35:53 +02:00
Máté Kocsis
b18b2c8fe5
Add string or object ZPP macros
...
Closes GH-5788
2020-07-06 12:42:02 +02:00
Nikita Popov
a4b253c40b
ReflectionMethod::invoke() object is not optional
2020-07-06 11:53:57 +02:00