History log of /PHP-7.4/Zend/zend_execute_API.c (Results 1 – 25 of 892)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 54248b18 10-Dec-2020 Calvin Buckley

IBM i PASE doesn't support ITIMER_PROF

Like Cygwin, this platform needs to use a real-time timer.

This was based on a patch by @kadler, but it didn't handle unsetting
the timer,

IBM i PASE doesn't support ITIMER_PROF

Like Cygwin, this platform needs to use a real-time timer.

This was based on a patch by @kadler, but it didn't handle unsetting
the timer, so the timeout would continue to be active, triggering
`hard_timeout` unexpectedly. The patch is fixed to handle unsetting.

Closes GH-6503.

show more ...


# bb54694f 24-Aug-2020 Nikita Popov

Fix refcounting


# 6b6c2c00 24-Aug-2020 Christoph M. Becker

Fix #79979: passing value to by-ref param via CUFA crashes

If a by-val send is not allowed, we must not do so. Instead we wrap
the value in a temporary reference.

Closes GH-6000


# 8819d247 20-May-2020 Nikita Popov

Don't require rc=1 for function static variables

If file cache only is used, then static_variables_ptr may point
to an immutable static_variables HT, which we do not want to
destroy

Don't require rc=1 for function static variables

If file cache only is used, then static_variables_ptr may point
to an immutable static_variables HT, which we do not want to
destroy here.

show more ...


# 98deece6 30-Jan-2020 Nikita Popov

Reset trampoline on executor startup

Make sure the trampoline is usable, even if we had an unclean
shutdown on the last request.


# 621598ea 13-Dec-2019 Nikita Popov

Fixed bug #78921

By resetting fake_scope during autoloading. We already do the same
when executing destructors.


Revision tags: php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, 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
# ed31e041 21-Oct-2019 Nikita Popov

Fix leak with cycle in static prop of internal class

More the cleanup of interned classes before the final GC run,
just like it is done for user classes.


Revision tags: php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1
# f2e88512 01-Oct-2019 Nikita Popov

Remove func copy optimization for private method with static vars

Not NULLing the static_variables pointer for shadow methods during
static var shutdown would be a way to avoid this leak

Remove func copy optimization for private method with static vars

Not NULLing the static_variables pointer for shadow methods during
static var shutdown would be a way to avoid this leak, but unless
there's evidence that inherited private methods with static vars are
actually a common use-case, I don't think we should keep this kind
of fragile edge-case optimization.

Fixes OSS-Fuzz #17875.

show more ...


Revision tags: php-7.4.0RC3, php-7.2.23, php-7.3.10, php-7.4.0RC2
# 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 ...


# 270e5e3c 11-Sep-2019 Nikita Popov

Only allow "nearly linked" classes for parent/interface

The requirements for parent/interface are difference than for the
variance checks in type declarations. The latter can work on ful

Only allow "nearly linked" classes for parent/interface

The requirements for parent/interface are difference than for the
variance checks in type declarations. The latter can work on fully
unlinked classes, but the former need inheritance to be essentially
finished, only variance checks may still be outstanding.

Adding a new flag for this because we have lots of space, but we
could also represent these "inheritance states" more compactly in
the future.

show more ...


Revision tags: php-7.2.23RC1, php-7.3.10RC1, php-7.4.0RC1
# f912445e 28-Aug-2019 Nikita Popov

Add missed mutability check


# 2709d6a2 28-Aug-2019 Nikita Popov

Destroy error handlers before final GC run


# ec9a96dc 28-Aug-2019 Nikita Popov

Fixed bug #78335

Destroy static properties and variables prior to the final GC run,
as they may hold GC roots.


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
# a18ad194 12-Aug-2019 Nikita Popov

Fixed bug #78396


Revision tags: php-7.4.0beta2, php-7.1.31, php-7.2.21, php-7.3.8, php-7.4.0beta1, php-7.2.21RC1, php-7.3.8RC1
# 22ed3628 09-Jul-2019 Nikita Popov

Revert "Fixed bug #76980"

This reverts commit 35353dc49a73a58c17c7896c4c4c3997ef2c007d.

This changes causes issues for Symfony, see
https://github.com/symfony/symfony/issues/323

Revert "Fixed bug #76980"

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.

show more ...


Revision tags: php-7.4.0alpha3
# 2bf880db 03-Jul-2019 Nikita Popov

Fixed bug #78239


Revision tags: php-7.3.7, php-7.2.20
# 01e1e199 01-Jul-2019 Nikita Popov

Clarify #if indentation in time limit implemementation


# ba8033fe 28-Jun-2019 Dmitry Stogov

Fixed use-after-free


Revision tags: php-7.4.0alpha2, php-7.3.7RC3
# eaafb69e 20-Jun-2019 Nikita Popov

Change indexing scheme for symtable_cache

symtable_cache_ptr now points to the first unused symtable_cache
entry, rahter than the last used one. This avoids taking a pointer
to the m

Change indexing scheme for symtable_cache

symtable_cache_ptr now points to the first unused symtable_cache
entry, rahter than the last used one. This avoids taking a pointer
to the minus first element of the array, which is UB. Instead we
take a pointer to the end plus one, which is not UB.

show more ...


Revision tags: php-7.3.7RC2, php-7.2.20RC2, php-7.4.0alpha1, php-7.3.7RC1, php-7.2.20RC1, php-7.2.19, php-7.3.6, php-7.1.30
# 8f8fcbbd 27-May-2019 Nikita Popov

Support full variance if autoloading is used

Keep track of delayed variance obligations and check them after
linking a class is otherwise finished. Obligations may either be
unresolv

Support full variance if autoloading is used

Keep track of delayed variance obligations and check them after
linking a class is otherwise finished. Obligations may either be
unresolved method compatibility (because the necessecary classes
aren't available yet) or open parent/interface dependencies. The
latter occur because we allow the use of not fully linked classes
as parents/interfaces now.

An important aspect of the implementation is we do not require
classes involved in variance checks to be fully linked in order for
the class to be fully linked. Because the involved types do have to
exist in the class table (as partially linked classes) and we do
check these for correct variance, we have the guarantee that either
those classes will successfully link lateron or generate an error,
but there is no way to actually use them until that point and as
such no possibility of violating the variance contract. This is
important because it ensures that a class declaration always either
errors or will produce an immediately usable class afterwards --
there are no cases where the finalization of the class declaration
has to be delayed until a later time, as earlier variants of this
patch did.

Because variance checks deal with classes in various stages of
linking, we need to use a special instanceof implementation that
supports this, and also introduce finer-grained flags that tell us
which parts have been linked already and which haven't.

Class autoloading for variance checks is delayed into a separate
stage after the class is otherwise linked and before delayed
variance obligations are processed. This separation is needed to
handle cases like A extends B extends C, where B is the autoload
root, but C is required to check variance. This could end up
loading C while the class structure of B is in an inconsistent
state.

show more ...


# 1df9f238 31-May-2019 Dmitry Stogov

Better hot/cold code splitting


# e14d7733 29-May-2019 Dmitry Stogov

Mark "cold" functions


# e6fac86d 24-May-2019 Nikita Popov

Accept flags argument in zend_lookup_class_ex()

Instead of a single boolean, so we have space for extension here.


# 64918c77 22-May-2019 Nikita Popov

Forbid use of not fully linked classes


# 35353dc4 15-May-2019 Nikita Popov

Fixed bug #76980

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 w

Fixed bug #76980

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.

show more ...


12345678910>>...36