Dmitry Stogov
fa5355ba08
Change zend_get_known_property_offset() into zend_get_known_property_info() and cleanup
2020-07-08 12:02:37 +03:00
Christoph M. Becker
0e5d19bc96
[ci skip] Merge branch 'PHP-7.4'
...
* PHP-7.4:
Report len as -1 instead of INT_MAX
2020-07-08 10:43:21 +02:00
Nikita Popov
22be60bb25
Add declared properties to LibXMLError
...
Partially addresses bug #79804 .
2020-07-08 10:41:46 +02:00
Christoph M. Becker
776e872ab8
[ci skip] Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Report len as -1 instead of INT_MAX
2020-07-08 10:40:13 +02:00
Nikita Popov
e6160e99d8
Report len as -1 instead of INT_MAX
...
Per docs it should be -1. And would be on 32-bit systems, but
not on 64-bit systems.
(cherry picked from commit 39111585a2 )
2020-07-08 10:38:11 +02:00
Nikita Popov
2af1d36bc5
Skip special function optimization for redeclared disabled functions
...
As pointed out on GH-5817.
2020-07-08 10:11:00 +02:00
Sara Golemon
f1a343439d
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Prep for 7.2.33
Prep NEWS for 7.2.32 release
2020-07-07 19:35:17 +00:00
Sara Golemon
fef26361d0
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Prep for 7.2.33
Prep NEWS for 7.2.32 release
2020-07-07 19:34:08 +00:00
Sara Golemon
e54f18ae0f
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Prep for 7.2.33
Prep NEWS for 7.2.32 release
2020-07-07 19:33:48 +00:00
Sara Golemon
c68d48de9e
Prep for 7.2.33
2020-07-07 19:32:15 +00:00
Sara Golemon
9588c8474e
Prep NEWS for 7.2.32 release
2020-07-07 19:31:05 +00:00
Dmitry Stogov
ab5f8f4baf
More accurate reference-counter inference (with support for ext/intl/tests/bug72241.phpt)
2020-07-07 19:11:27 +03:00
Nikita Popov
15c265b789
Revert "More accurate reference-counter inference"
...
This reverts commit b35255ad21 .
Temporarily revert this, because it causes a memory leak on the
ext/intl/tests/bug72241.phpt test case, because temporary arrays
are not handled correctly.
2020-07-07 16:53:00 +02:00
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