Tyson Andre
37a7046d85
Merge branch 'identical-handler' into HEAD
2020-01-03 19:04:20 -05:00
Máté Kocsis
8f4f1dea34
Convert zend_parse_parameters_none() to fast ZPP
...
I've done the conversion in those extensions where fast ZPP is predominant.
2020-01-03 13:23:37 +01:00
Nikita Popov
0e6cff70a5
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Add test for bug #73816
2020-01-03 11:27:27 +01:00
Nikita Popov
6f63e05320
Add test for bug #73816
...
This has been fixed by 0f2cdbf214 ,
add the test case.
2020-01-03 11:26:31 +01:00
Nikita Popov
d8c9902567
Implement WeakMap
...
RFC: https://wiki.php.net/rfc/weak_maps
2020-01-03 10:43:24 +01:00
Máté Kocsis
1b93cfee0c
Use RETURN_THROWS() after zend_parse_method_parameters()
2020-01-02 23:01:37 +01:00
Máté Kocsis
349a286461
Use RETURN_THROWS() after zend_throw_error()
2020-01-01 16:42:30 +01:00
Nikita Popov
3262c28d5c
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Also propagate include exceptions in opcache
Make url_stats in resolve_path quiet
2019-12-30 23:22:39 +01:00
Nikita Popov
003be875e4
Make url_stats in resolve_path quiet
...
These stats are used to check whether the file exists -- they
should not generate errors. Having the flag set is particularly
important for custom stream wrappers.
2019-12-30 23:22:26 +01:00
Christoph M. Becker
1ff6911d6a
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Avoid undefined behavior
2019-12-30 23:18:34 +01:00
Christoph M. Becker
98df5c97f4
Avoid undefined behavior
2019-12-30 23:17:39 +01:00
Nikita Popov
d5c886ab7d
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Properly propagate url_stat exceptions during include
2019-12-30 22:57:07 +01:00
Nikita Popov
f77747b06c
Properly propagate url_stat exceptions during include
...
Make sure we abort operations early, and that we don't emit
additional warnings or errors if an exception has been thrown.
2019-12-30 22:56:42 +01:00
Máté Kocsis
e1b57310b1
Use RETURN_THROWS() during ZPP in main, sapi, win32, and Zend
2019-12-30 17:38:10 +01:00
Máté Kocsis
31cf9a7ea9
Use RETURN_THROWS() when an exception is thrown
...
Closes GH-5036
2019-12-30 17:38:10 +01:00
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
Tyson Andre
dea62d4b0c
Speed up ZEND_IS_IDENTICAL when it can't throw
...
Add a specialized opcode handler to use for `===`/`!==` when:
1. At least one side is a $cv, and the other is a $cv or CONST
(avoids the need to free operands)
2. Neither operand can be undefined or a reference
(avoids the need for error handling and dereferencing)
```
// Elapsed time decreased from 0.275 seconds to 0.243 seconds in combination
// with PR #4982
function count_same(array $values) {
$same = 0;
foreach ($values as $x) {
foreach ($values as $y) {
if ($y === $x) {
$same++;
}
}
}
return $same;
}
$values = range(0, 5000);
$values[] = new stdClass();
$values[] = null;
$values[] = 3;
$start = microtime(true);
$total = count_same($values);
```
2019-12-23 15:42:42 -05: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
Máté Kocsis
0e8070778e
Make get_defined_vars() always return an array
...
GH-5025
2019-12-20 14:31:57 +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
621842e3f5
RECV opcode optimization
2019-12-20 06:46:25 +03: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
89d1e6b7d0
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Add destructor annotations in ini parser
2019-12-19 10:43:23 +01:00
Nikita Popov
e4b12fc62a
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Add destructor annotations in ini parser
2019-12-19 10:43:14 +01:00
Nikita Popov
0f078f6e78
Add destructor annotations in ini parser
...
It would be better to switch this to use %union and %type annotations,
but not going to do that change for 7.3.
2019-12-19 10:43:05 +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