| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Closes GH-4389.
(cherry picked from commit e6c2b288652cf9c8d0b92d2842d73b3eb2431860)
|
| |
|
|\
| |
| |
| |
| | |
* PHP-7.2:
Fixed incorrect specialization (missed IS_INDIRECT handling)
|
| | |
|
| |
| |
| |
| |
| | |
Prevent the gc_info from becoming all zero for a registered root
by setting the top bit to one for compressed root addresses.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When cleaning nops in the dfa pass, we were always keeping the
smart branch inhibiting nop that occurs directly before the jump
instruction. However, as we skip unreachable blocks entirely, it
may happen that we need to keep a nop that occurs further back,
prior to the unreachable blocks. Account for that case now.
We should really do something about the smart branch situation,
this is very fragile...
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 35353dc49a73a58c17c7896c4c4c3997ef2c007d.
This changes causes issues for Symfony, see
https://github.com/symfony/symfony/issues/32395. I'm reverting it
from PHP 7.2 and PHP 7.3 and only leaving it in PHP 7.4.
|
|\ \
| |/ |
|
| |
| |
| |
| | |
Closes GH-4324.
|
| | |
|
|\ \
| |/
| |
| |
| | |
* PHP-7.2:
disabled functions must not have return type
|
| | |
|
| |
| |
| |
| |
| |
| | |
Free metadata before freeing the arena. I don't have a repro script,
but the added assertion fails for many existing tests prior to this
change.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
If we perform a class fetch that is not marked as exception safe,
convert exceptions thrown by autoloaders into a fatal error.
Ideally fetching the interfaces would be exception safe, but as it
isn't right now, we must abort at this point.
|
| | |
|
|\ \
| |/
| |
| |
| | |
* PHP-7.2:
Fix test case
|
| |
| |
| |
| |
| | |
stderr is supposed to be redirected to NUL (which is roughly equivalent
to /dev/null on POSIX), but actually was redirected to a file.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
If a PHP file contains an invalid hex literal such as `0x_10`, the expected error
is `Parse error: syntax error, unexpected 'x_10' (T_STRING) in %s on line %d`.
This already worked correctly on Linux, but on Windows prior to this patch a different
error was produced: `Parse error: Invalid numeric literal in %s on line %d`.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
We can't assume that the method we're checking against is part of
the parent class...
|
| | |
|
| | |
|
| |
| |
| |
| | |
assert during string interning.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
HT_FLAGS() includes the full flag word, including the iterator
count. When we're fully reassigning it, we need to make sure that
we either really do want to copy the iterator count (as in some
cases in array.c) or we need to mask only the actual flag byte.
Add an assert to hash_iterators_del() to make sure the iterator
count is non-zero (which is how I ran into this) and make sure that
the iterator count is correctly preserved during array splicing.
|
| | |
|
| |
| |
| |
| |
| |
| | |
When a HT iterator is one past the end and we rehash, we need to make
sure that it is move to the new one past the end position, to make
sure that newly inserted elements are picked up.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In the hash position APIs, make sure we always advance to the next
non-undef element and not just when the position is 0 (similar to
what foreach does). This can happen when the position of an
ArrayIterator is one past its current end and a new element is
inserted not directly at that position because the array is packed.
There is still a bug here (as shown in the tests), but this is a
separate issue that also affects plain array iteration in foreach.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a connection is closed, we also need to remove the hash entry
from the regular_list, as it now points to freed memory. To do this
store a reverse mapping from the connection to the hash string.
It would be nicer to introduce a wrapping structure for the pgsql
link resource that could store the hash (and notices), but that would
require large changes to the extension, so I'm going for a more
minimal fix here.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.2:
Repare SWITCH VM
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
We should probably return an integer result from the operation in
typed mode, right now the result is always a string.
|
| | |
|
| |
| |
| |
| |
| | |
This is undefined behavior and we cannot rely on it. Additionally it
breaks builds using undefined behavior sanitizers.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| | |
We only need to do this once we're running destructors. The current
approach interferes with some event loop code that runs everything
inside a shutdown function.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.2:
Fixed bug #77738 (Nullptr deref in zend_compile_expr)
|
| | |
|
| |
| |
| |
| | |
collection)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This might happen if OBJ_RELEASE is used on an object that was already
released by GC. Specific cases of this issue were previously fixed in
ffaee27478a9cb338e40edeb5acf233f9cb67111 and
72104d2b6ecbbabd18de15f10739be5ce3dc9ce0, however the issue still
affects 3rd-party extensions using OBJ_RELEASE.
The whole GC type NULL + OBJ_IS_VALID + IS_FREE_CALLED system seems
overly complicated and can probably be simplified in 7.4.
|
|\ \
| |/ |
|
| |
| |
| |
| | |
And same for other properties. Encountered in Symfony.
|
| | |
|
|\ \
| |/
| |
| |
| | |
* PHP-7.2:
Fixed bug #77660 (Segmentation fault on break 2147483648)
|
| | |
|