History log of /PHP-8.1/Zend/zend_API.c (Results 1 – 25 of 1174)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# a8c6c616 07-Oct-2023 Jakub Zelenka

Fix GH-9921: Loading ext in FPM config does not register module handlers

Closes GH-12377


# af3d2f7e 18-Oct-2023 Ilija Tovilo

Fix double-free of doc_comment when overriding static property via trait

When redeclaring an overridden static property with a trait we're removing the
property from the class. However,

Fix double-free of doc_comment when overriding static property via trait

When redeclaring an overridden static property with a trait we're removing the
property from the class. However, because the property itself does not belong to
the class we must not free its associated data.

This issue is exposed by 9a250cc9d6 in PHP 8.3+ because duplicate static
properties in traits are no longer skipped, but redeclared.

Fixes GH-12468

show more ...


# 910f579f 18-Sep-2023 Florian Sowade

Fix GH-12207 memory leak of doc blocks of static properties

When declaring the same static property with a doc block in a class and in a trait,
the doc block of the property in the class

Fix GH-12207 memory leak of doc blocks of static properties

When declaring the same static property with a doc block in a class and in a trait,
the doc block of the property in the class is leaked. While at it, possibly fix doc
comment for internal classes.

Close GH-12238

show more ...


# 8959ff39 24-Feb-2023 nielsdos <7771979+nielsdos@users.noreply.github.com>

Fix incorrect type for return value of zend_update_static_property_ex()

zend_update_static_property_ex() returns a zend_result, but the return
value is stored here in a bool. A bool is u

Fix incorrect type for return value of zend_update_static_property_ex()

zend_update_static_property_ex() returns a zend_result, but the return
value is stored here in a bool. A bool is unsigned on my system, so in
case zend_update_static_property_ex() returns FAILURE (== -1) this gets
converted to 1 instead. This is not a valid zend_result value. This
means that (transitive) callers could mistakingly think the function
succeeded while it did in fact not succeed. Fix it by changing the type
to zend_result.

Closes GH-10691.

show more ...


# 976cbba7 09-Jun-2022 Jakub Zelenka

Merge branch 'PHP-8.0' into PHP-8.1


Revision tags: php-8.1.7RC1
# b765d4cd 21-May-2022 Jakub Zelenka

Fix bug #50293 and #81713: file path checking in OpenSSL functions

It introduces a single function to check file paths passed to OpenSSL
functions. It expands the path, check null bytes

Fix bug #50293 and #81713: file path checking in OpenSSL functions

It introduces a single function to check file paths passed to OpenSSL
functions. It expands the path, check null bytes and finally does
an open basedir check.

show more ...

# 6cda01a0 24-May-2022 Arnaud Le Blanc

Disable zend_rc_debug during dtor of dl()'ed module (#8606)

Newly added dl() tests trigger an assertion in ZEND_RC_DEBUG builds. This change
disables zend_rc_debug to allows these tests

Disable zend_rc_debug during dtor of dl()'ed module (#8606)

Newly added dl() tests trigger an assertion in ZEND_RC_DEBUG builds. This change
disables zend_rc_debug to allows these tests to pass until this issue is
resolved.

show more ...

# f07a08df 06-May-2022 Arnaud Le Blanc

Fix unregistering ini entries of dynamically loaded extension (#8435)

Fixes GH-8185

Revision tags: php-8.1.4RC1, php-8.1.3, php-8.1.2RC1, php-8.1.0
# 44e5d253 16-Nov-2021 Nikita Popov

Fix inheritance of class constants if mutable data used

Class constants from parents should always be directly reused,
rather than re-evaluated as a separate copy. Previously this used

Fix inheritance of class constants if mutable data used

Class constants from parents should always be directly reused,
rather than re-evaluated as a separate copy. Previously this used
to happen automatically, as we'd just inherit the class constant
entry from the parent class. With mutable data there may now be
a separate copy of the constant, so we need to use that copy
when updating constants. Otherwise we may evaluate the same
constant multiple times.

Closes GH-7658.

show more ...

Revision tags: php-7.3.33
# 277caa1d 09-Nov-2021 Nikita Popov

Merge branch 'PHP-8.0' into PHP-8.1

* PHP-8.0:
Add string return type to __toString() of internal classes


# a551b083 09-Nov-2021 Nikita Popov

Add string return type to __toString() of internal classes

Same as with userland classes, automatically add a string return
type to __toString() methods in internal classes, so the signa

Add string return type to __toString() of internal classes

Same as with userland classes, automatically add a string return
type to __toString() methods in internal classes, so the signature
is compatible with Stringable.

show more ...

# b0ec6223 05-Nov-2021 Nikita Popov

Merge branch 'PHP-8.0' into PHP-8.1

* PHP-8.0:
Implement Stringable automatically for internal classes


# b302bfab 05-Nov-2021 Nikita Popov

Implement Stringable automatically for internal classes

Requiring all internal classes (including those from 3rd-party
extensions) to implement Stringable if they provide __toString()

Implement Stringable automatically for internal classes

Requiring all internal classes (including those from 3rd-party
extensions) to implement Stringable if they provide __toString()
is too error prone. Case in point, our _ZendTestClass test class
was not doing so, resulting in preloading test failures after
recent changes.

Instead we automatically implement Stringable, the same as we do
for userland classes. We still allow explicit implementations,
but ignore them (normally they would result in an error due to
duplicate interface implementation). Finally, we need to be
careful about not trying to implement Stringable on Stringable
itself.

In some cases this changes the interface order, in particular the
automatic Stringable implementation will now come first.

show more ...

# 4bdb2718 05-Nov-2021 Nikita Popov

Merge branch 'PHP-8.0' into PHP-8.1

* PHP-8.0:
Don't implement Stringable on traits


# d478ae73 05-Nov-2021 Nikita Popov

Don't implement Stringable on traits

Traits do not support interfaces, so we should not implement
Stringable on them.

Also check the __toString() return type in the same way oth

Don't implement Stringable on traits

Traits do not support interfaces, so we should not implement
Stringable on them.

Also check the __toString() return type in the same way other
magic methods do, otherwise we would now miss the check in the
trait case.

show more ...

Revision tags: php-7.3.32, php-7.3.31
# 5b2ddf5a 31-Aug-2021 Nikita Popov

Export zend_use_resource_as_offset()

Use a common implementation to generate this error message, as
we do so in quite a few places dealing with array keys.

Revision tags: php-7.3.30
# cf6c354e 17-Aug-2021 Nikita Popov

Run other RSHUTDOWN handlers if one fails

Motivated by bug #81316: If one RSHUTDOWN handler fails, still
run the other ones. They may be doing something important...

# 315f4094 11-Aug-2021 Nikita Popov

Always use CE_CACHE, remove TYPE_HAS_CE (#7336)

Currently, CE_CACHE on strings is only used with opcache interned strings. This
patch extends usage to non-opcache interned strings as wel

Always use CE_CACHE, remove TYPE_HAS_CE (#7336)

Currently, CE_CACHE on strings is only used with opcache interned strings. This
patch extends usage to non-opcache interned strings as well. This means that
most type strings can now make use of CE_CACHE even if opcache is not loaded,
which allows us to remove TYPE_HAS_CE kind, and fix some discrepancies
depending on whether a type stores a resolved or non-resolved name.

There are two cases where CE_CACHE will not be used:

* When opcache is not used and a permanent interned string (that is not an
internal class name) is used as a type name during the request. In this case
we can't allocate a map_ptr index for the permanent string, as it would be
not be in the permanent map_ptr index space.
* When opcache is used but the script is not cached (e.g. eval'd code or
opcache full). If opcache is used, we can't allocate additional map_ptr
indexes at runtime, because they may conflict with indexes allocated by
opcache.

In these two cases we would end up not using CE caching for property types
(argument/return types still have the separate cache slot).

show more ...

# 8675380b 27-Jul-2021 Nikita Popov

Increment refcounts in mutable data copies

For mutable_data on preloaded classes, there may be refcounted
values in the constants/properties table.

# 5a7e1a7a 27-Jul-2021 Nikita Popov

Don't use IMMUTABLE flag to decide whether mutable_data is used

mutable_data may be used for IMMUTABLE classes, internal classes
and to-be-preloaded classes. Check whether the mutable_da

Don't use IMMUTABLE flag to decide whether mutable_data is used

mutable_data may be used for IMMUTABLE classes, internal classes
and to-be-preloaded classes. Check whether the mutable_data
map_ptr is set rather than only the IMMUTABLE flag.

show more ...

# a374230c 22-Jul-2021 Nikita Popov

Add support for internal enums

This adds support for internal enums with the same basic approach
as userland enums. Enum values are stored as CONSTANT_AST and
objects created during

Add support for internal enums

This adds support for internal enums with the same basic approach
as userland enums. Enum values are stored as CONSTANT_AST and
objects created during constant updating at runtime. This means
that we need to use mutable_data for internal enums.

This just adds basic support and APIs, it does not include the
stubs integration from #7212.

Closes GH-7302.

show more ...

# c4f4f1ec 23-Jul-2021 Nikita Popov

Share zval_make_interned_string() helper

The same function was defined in zend_compile.c and zend_API.c.

# 89d01154 23-Jul-2021 Nikita Popov

Remove zend_cleanup_internal_classes()

If fast_shutdown is used, then we don't need to destroy static
members at all. If fast_shutdown is not used, then we already
loop over classes

Remove zend_cleanup_internal_classes()

If fast_shutdown is used, then we don't need to destroy static
members at all. If fast_shutdown is not used, then we already
loop over classes to destroy static members and static variables
in methods.

show more ...

# 921e1052 23-Jul-2021 Nikita Popov

Merge branch 'PHP-8.0'

* PHP-8.0:
Fix bug #66719


# 90ee1c36 23-Jul-2021 Nikita Popov

Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
Fix bug #66719


12345678910>>...47