Xinchen Hui
3f3c1ad848
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Similar problem (#79022 ) also exists in Interfaces
Fixed bug #79022 (class_exists returns True for classes that are not ready to be used)
2019-12-24 14:21:52 +08:00
Xinchen Hui
f09b958e90
Similar problem ( #79022 ) also exists in Interfaces
2019-12-24 14:20:55 +08:00
Xinchen Hui
153c9cc346
Fixed bug #79022 (class_exists returns True for classes that are not ready to be used)
2019-12-24 14:04:19 +08:00
Christoph M. Becker
dabc28d182
Fix #78880 : Spelling error report
...
We fix the most often occuring typos according to a recent codespell
report[1] in tests, code comments and documentation.
[1] <https://fossies.org/linux/test/php-src-master-f8f48ce.191129.tar.gz/codespell.html >.
2019-12-21 11:58:00 +01:00
Nikita Popov
1d6325fb01
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix leak when generator closed during yield in finally
2019-12-20 17:46:43 +01:00
Nikita Popov
b829ea5f74
Fix leak when generator closed during yield in finally
...
In this case we need to free any pending exceptions or return values
that will be discarded.
2019-12-20 17:46:31 +01:00
Nikita Popov
0d8ebbaa73
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix early free of assign_obj op_data
2019-12-20 10:35:50 +01:00
Nikita Popov
885b3451f4
Fix early free of assign_obj op_data
...
We need to make sure that op_data is only freed after populating
result, as op_data may be the only thing holding the value in the
case of an overloaded assignment.
This reverts the code to how it looked like in 7.3.
2019-12-20 10:35:34 +01:00
Dmitry Stogov
a31b5eca68
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78999 (Cycle leak when using function result as temporary)
2019-12-19 23:19:31 +03:00
Dmitry Stogov
66d5b0608a
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed bug #78999 (Cycle leak when using function result as temporary)
2019-12-19 23:17:39 +03:00
Dmitry Stogov
eb846939b1
Fixed bug #78999 (Cycle leak when using function result as temporary)
2019-12-19 23:11:08 +03:00
Nikita Popov
557a211f46
Adjust test for notice->warning change
2019-12-19 12:03:09 +01:00
Nikita Popov
e15915d21c
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Avoid signed integer overflow in string offset check
2019-12-19 11:48:20 +01:00
Nikita Popov
527ad1d80c
Avoid signed integer overflow in string offset check
...
Cast to size_t before performing operations instead of afterwards.
2019-12-19 11:47:50 +01:00
Nikita Popov
2a76384b87
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix leak in assign_ref with function
2019-12-18 17:18:46 +01:00
Nikita Popov
df08d6bffe
Fix leak in assign_ref with function
...
As far as I can see, the retval copying is already done in all
callers of this function, so it should not be duplicated here.
2019-12-18 17:18:10 +01:00
Nikita Popov
655d5c8383
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78776
2019-12-18 15:56:10 +01:00
Nikita Popov
4a61d842e7
Fixed bug #78776
...
By using the normal inheritance check if the parent is abstract
as well.
2019-12-18 15:55:45 +01:00
Nikita Popov
1f5f4736d9
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Rethrow generator exception even without active stack frame
2019-12-18 11:04:51 +01:00
Nikita Popov
bfb38c3592
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Rethrow generator exception even without active stack frame
2019-12-18 11:04:46 +01:00
Nikita Popov
897d99c7a4
Rethrow generator exception even without active stack frame
...
Finally blocks in generators may be invoked during shutdown, in
which case we don't have a stack frame. Similar to what
zend_call_function does, we still need to rethrow these exceptions,
otherwise they will be hidden (and leak).
2019-12-18 11:04:15 +01:00
Nikita Popov
48d5100738
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix use-after-free when trying to write to closure property
2019-12-18 10:24:41 +01:00
Nikita Popov
b965f158ac
Fix use-after-free when trying to write to closure property
2019-12-18 10:24:02 +01:00
Nikita Popov
e0a31cee32
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix freeing of dynamic call name
2019-12-18 10:11:40 +01:00
Nikita Popov
ee89e73312
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix freeing of dynamic call name
2019-12-18 10:11:23 +01:00
Nikita Popov
189f625e2b
Fix freeing of dynamic call name
...
We need to free op2 if the call construction fails.
Also remove a redundant check for !call.
2019-12-18 10:11:09 +01:00
Nikita Popov
8eabaf7efc
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix const/cv freeing on failed reference assignment
2019-12-18 09:54:18 +01:00
Nikita Popov
0301ab70b3
Fix const/cv freeing on failed reference assignment
2019-12-18 09:54:10 +01:00
Nikita Popov
7194825c86
Fix leak of dynamic property name in address helper
2019-12-17 16:59:35 +01:00
Nikita Popov
7d07f19eee
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Set opcache.optimization_level=0 in test
2019-12-16 20:23:53 +01:00
Nikita Popov
77e131da91
Set opcache.optimization_level=0 in test
...
Otherwise opcache "inlines" the function, which causes a minor
difference in destruction behavior.
2019-12-16 20:23:17 +01:00
Stanislav Malyshev
6556916759
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Test fixes
2019-12-16 10:31:40 -08:00
Stanislav Malyshev
d82a2f6c21
Test fixes
2019-12-16 10:31:22 -08:00
Nikita Popov
98527d7d4c
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78973
2019-12-16 18:53:32 +01:00
Nikita Popov
11b041d3c6
Fixed bug #78973
...
Save opline in leave helper to correctly handle destructor calls
during CV freeing (or other leave freeing).
2019-12-16 18:52:30 +01:00
Nikita Popov
72a5fdec2c
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78921
2019-12-13 16:38:42 +01:00
Nikita Popov
7e9e0937f3
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed bug #78921
2019-12-13 16:38:24 +01:00
Nikita Popov
621598eaa8
Fixed bug #78921
...
By resetting fake_scope during autoloading. We already do the same
when executing destructors.
2019-12-13 16:37:20 +01:00
Máté Kocsis
beee92a887
Remove support for mixing parameter order in implode()
2019-12-12 13:49:05 +01:00
Nikita Popov
8b1b68d3ba
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78926 : Handle class table reallocation on failed link
2019-12-09 09:16:48 +01:00
Nikita Popov
32c1f37574
Fixed bug #78926 : Handle class table reallocation on failed link
...
When we change back the bucket key on a class linking failure,
make sure to reload the bucket pointer, as the class table may
have been reallocated in the meantime.
Also remove a bogus bucket key change in anon class registration:
We don't actually rename the class in this case anymore, the RTD
key is already the final name.
2019-12-09 09:15:27 +01:00
Nikita Popov
33e39f088a
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Use unmangled named in property type inheritance error
2019-12-09 08:49:42 +01:00
Nikita Popov
5fcc12f505
Use unmangled named in property type inheritance error
2019-12-09 08:48:33 +01:00
Nikita Popov
ded87a9ea0
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78904 : Don't call any magic for uninitialized typed properties
2019-12-09 08:42:34 +01:00
Nikita Popov
84354c62b3
Fixed bug #78904 : Don't call any magic for uninitialized typed properties
...
We already changed the behavior for __set() in f1848a4 . However, it
seems that this is also a problem for all the other property magic,
see bug #78904 .
This commit makes the behavior of all the property magic consistent:
Magic will not be triggered for uninitialized typed properties, only
explicitly unset() ones. This brings behavior more in line how
non-typed properties behave and avoids WTF.
Closes GH-4974.
2019-12-09 08:40:53 +01:00
Nikita Popov
9554fb3498
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix constant evaluation of && and ||
2019-12-06 11:11:12 +01:00
Nikita Popov
07fc0764d1
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix constant evaluation of && and ||
2019-12-06 11:10:31 +01:00
Nikita Popov
249e49092d
Fix constant evaluation of && and ||
...
The "return" in the for loop should have been a break on the switch,
otherwise the result is just ignored... but because it prevents
evaluation of the other operand, it also violates the invariant that
everything has been constant evaluated, resulting in an assertion
failure.
The for loop isn't correct in any case though, because it's not legal
to determine the result based on just the second operand, as the
first one may have a side-effect that cannot be optimized away.
2019-12-06 11:07:57 +01:00
Máté Kocsis
633926021b
Remove ezmlm_hash() function
2019-12-05 13:15:54 +01:00
Máté Kocsis
ad4d6634f4
Promote warnings to exceptions in settype() function
2019-12-05 08:31:43 +01:00