#
189f625e |
| 18-Dec-2019 |
Nikita Popov |
Fix freeing of dynamic call name We need to free op2 if the call construction fails. Also remove a redundant check for !call.
|
#
11b041d3 |
| 16-Dec-2019 |
Nikita Popov |
Fixed bug #78973 Save opline in leave helper to correctly handle destructor calls during CV freeing (or other leave freeing).
|
#
20ef51db |
| 10-Dec-2019 |
Dmitry Stogov |
Fixed bug #78937 (Preloading unlinkable anonymous class can segfault)
|
#
32c1f375 |
| 09-Dec-2019 |
Nikita Popov |
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
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.
show more ...
|
Revision tags: php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12 |
|
#
a2c41c0e |
| 15-Nov-2019 |
Tyson Andre |
Fix $x = (bool)$x; for undefined with opcache And `$x = !$x` Noticed while working on GH-4912 The included test would not emit undefined variable errors in php 8.0 with
Fix $x = (bool)$x; for undefined with opcache And `$x = !$x` Noticed while working on GH-4912 The included test would not emit undefined variable errors in php 8.0 with opcache enabled. The command used: ``` php -d zend_extension=opcache.so --no-php-ini -d error_reporting=E_ALL \ -d opcache.file_cache= -d opcache.enable_cli=1 test.php ```
show more ...
|
Revision tags: php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4 |
|
#
96c84b7b |
| 10-Oct-2019 |
Nikita Popov |
Fix leak on static method call on non-existent class
|
#
bea832cb |
| 08-Oct-2019 |
Nikita Popov |
Don't check type of simple parameter default values After fixing the int->double coercion case, this is already verified at compile-time, so there is no need to redo this type check on
Don't check type of simple parameter default values After fixing the int->double coercion case, this is already verified at compile-time, so there is no need to redo this type check on every call. Only perform the type check every time for the case of AST default values.
show more ...
|
#
21148679 |
| 08-Oct-2019 |
Nikita Popov |
Handle "non well formed" exception during ZPP Previously if the "non well formed" notice was converted into an exception we'd still end up executing the function. Also drop the
Handle "non well formed" exception during ZPP Previously if the "non well formed" notice was converted into an exception we'd still end up executing the function. Also drop the now unnecessary EG(exception) checks in the engine. Additionally remote a bogus exception in zend_is_callable: It should only be writing to error, but not directly throwing.
show more ...
|
Revision tags: php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3 |
|
#
a6c9c7c2 |
| 27-Sep-2019 |
Nikita Popov |
Handle resources used as array keys consistently Resources used as array keys are generally handled by throwing a notice and converting the resource to the resource handle. The only
Handle resources used as array keys consistently Resources used as array keys are generally handled by throwing a notice and converting the resource to the resource handle. The only exception is the [$resource => null] syntax, where this was treated as an illegal offset type instead. However, this also only happened for VM evaluations, the AST evaluator did handle resources correctly.
show more ...
|
#
23db95e3 |
| 25-Sep-2019 |
Dmitry Stogov |
Fixed GOTO VM
|
Revision tags: php-7.2.23, php-7.3.10, php-7.4.0RC2 |
|
#
d266ba4f |
| 17-Sep-2019 |
Nikita Popov |
Check for exception after calling count_values() To avoid a duplicate error if count_values() throws.
|
#
51d9f32d |
| 12-Sep-2019 |
Dmitry Stogov |
Fixed bug #78531 (Crash when using undefined variable as object
|
#
5a616191 |
| 12-Sep-2019 |
Dmitry Stogov |
Load string once
|
#
4b9ebd83 |
| 11-Sep-2019 |
Nikita Popov |
Allow throwing exception while loading parent class This is a fix for symfony/symfony#32995. The behavior is: * Throwing exception when loading parent/interface is allowed
Allow throwing exception while loading parent class This is a fix for symfony/symfony#32995. The behavior is: * Throwing exception when loading parent/interface is allowed (and we will also throw one if the class is simply not found). * If this happens, the bucket key for the class is reset, so it's possibly to try registering the same class again. * However, if the class has already been used due to a variance obligation, the exception is upgraded to a fatal error, as we cannot safely unregister the class stub anymore.
show more ...
|
Revision tags: php-7.2.23RC1, php-7.3.10RC1 |
|
#
4ecdff2d |
| 05-Sep-2019 |
Dmitry Stogov |
Revert "Microoptimization (avoid code duplication)" This reverts commit 25d97f5eeeaf2eca760139f04fe2711e71791d0f.
|
#
25d97f5e |
| 05-Sep-2019 |
Dmitry Stogov |
Microoptimization (avoid code duplication)
|
#
7237da27 |
| 05-Sep-2019 |
Dmitry Stogov |
Remove HOT attribute from some VM handlers. Comparisons almost always followed by JMPZ/JMPNZ; JMPZNZ is rare used.
|
#
b6f76aca |
| 04-Sep-2019 |
Nikita Popov |
Improve exception handling for abstract/deprecated calls Reuse existing arg freeing loop instead of duplicating it. Additionally also handle deprecated in DO_FCALL_BY_NAME.
|
#
4bb72827 |
| 04-Sep-2019 |
Nikita Popov |
Fix handling of abstract/deprecated exception The exception mechanism assumes that exceptions from DO_FCALL are already happening after the function call. This means that we are curr
Fix handling of abstract/deprecated exception The exception mechanism assumes that exceptions from DO_FCALL are already happening after the function call. This means that we are currently leaking the passed arguments, and I think we can also corrupt the VM stack due to incorrect frame linking in some cases (there are assertion failures if the VM stack page size is reduced). Instead handle the stack frame freeing manually for this special case.
show more ...
|
Revision tags: php-7.4.0RC1 |
|
#
ed749edd |
| 29-Aug-2019 |
Nikita Popov |
Fix use-after-free of immediately invoked closure with extra args
|
Revision tags: php-7.1.32, php-7.2.22, php-7.3.9, php-7.4.0beta4, php-7.2.22RC1, php-7.3.9RC1 |
|
#
d1fd4607 |
| 06-Aug-2019 |
Dmitry Stogov |
Inline zend_zval_ptr() in executor explicitely (only on hot paths)
|
Revision tags: php-7.4.0beta2 |
|
#
afd96392 |
| 01-Aug-2019 |
Nikita Popov |
Revert "Use RW fetch for argument unpacking" This reverts commit 6913ec3282149914e999d91b056fe1cc68d15ed7. This reverts commit a9e332e02777c9b3805f6af846a4f48504109d2b. Causes h
Revert "Use RW fetch for argument unpacking" This reverts commit 6913ec3282149914e999d91b056fe1cc68d15ed7. This reverts commit a9e332e02777c9b3805f6af846a4f48504109d2b. Causes https://bugs.php.net/bug.php?id=78356, which I don't have a good solution for.
show more ...
|
Revision tags: php-7.1.31, php-7.2.21, php-7.3.8 |
|
#
6913ec32 |
| 30-Jul-2019 |
Nikita Popov |
Use RW fetch for argument unpacking Argument unpacking may need to create references inside the array that is being unpacked. However, it currently can only do this if a plain variab
Use RW fetch for argument unpacking Argument unpacking may need to create references inside the array that is being unpacked. However, it currently can only do this if a plain variable is unpacked, not for any nested accesses, because the value is fetched for read. Resolve this by fetching the operands for RW.
show more ...
|
#
853b426e |
| 24-Jul-2019 |
Dmitry Stogov |
Avoid over-specialization
|
#
d7e8abb4 |
| 24-Jul-2019 |
Dmitry Stogov |
Reordering
|