History log of /php-src/ext/spl/spl_array.c (Results 1 – 25 of 518)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# d21bc7f1 06-Sep-2024 Ilija Tovilo

Disallow enums in ArrayObject

Closes GH-15775


# 9774cedb 18-Sep-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-15918: Assertion failure in ext/spl/spl_fixedarray.c

SplFixedArray should've never get supported in ArrayObject because it's
overloaded, and so that breaks assumptions. This regre

Fix GH-15918: Assertion failure in ext/spl/spl_fixedarray.c

SplFixedArray should've never get supported in ArrayObject because it's
overloaded, and so that breaks assumptions. This regressed in c4ecd82f.

Closes GH-15947.

show more ...


# 1fbb6665 17-Jul-2024 Arnaud Le Blanc

Use zend_std_build_properties() to access zend_object.properties

The zend_object.properties HashTable needs to be built just in time by calling
rebuild_object_properties() on the object

Use zend_std_build_properties() to access zend_object.properties

The zend_object.properties HashTable needs to be built just in time by calling
rebuild_object_properties() on the object before accessing it. Normally this is
done automatically in zend_std_get_properties(), but we do it manually in a few
places.

In this change I introduce an inline variant of zend_std_build_properties(), and
refactor these places to use it instead of calling rebuild_object_properties()
manually.

rebuild_object_properties() renamed as rebuild_object_properties_internal(), to
enforce usage of zend_std_get_properties() or zend_std_build_properties_ex().

Closes GH-14996

show more ...


# 53371725 09-Jun-2024 Gina Peter Banyard

ext/spl: Use ArrayObject object handlers for ArrayIterator

They are the same


# 80941042 09-Jun-2024 Gina Peter Banyard

ext/spl: Refactor debug handlers

Mainly to use zend_mangle_property_name() directly instead of spl_gen_private_prop_name()


# 54047c10 09-Jun-2024 Gina Peter Banyard

ext/spl: Remove some useless header includes and clarify usages


# fd2d8696 08-Jun-2024 Gina Peter Banyard

Clean-up some more headers (#14416)

Remove unused headers (such as php_ini.h for extensions that don't define INI settings)
Use more specific headers when possible


# 0de88dfb 28-Feb-2024 Gina Peter Banyard

ext/spl: mark all zend_object_handlers as static (#13547)


# 97267215 10-Jan-2024 David CARLIER

general signatures discrepencies fixes (#13122)


# ba204a2e 22-Aug-2023 George Peter Banyard

ext/spl: Restructure spl_array.c file to move ArrayObject methods together


# 1cdcbc05 30-Aug-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-11972: RecursiveCallbackFilterIterator regression in 8.1.18

When you do an assignment between two zvals (no, not zval*), you copy
all fields. This includes the additional u2 data.

Fix GH-11972: RecursiveCallbackFilterIterator regression in 8.1.18

When you do an assignment between two zvals (no, not zval*), you copy
all fields. This includes the additional u2 data. So that means for
example the Z_NEXT index gets copied, which in some cases can therefore
cause a cycle in zend_hash lookups.
Instead of doing an assignment, we should be doing a ZVAL_COPY (or
ZVAL_COPY_VALUE for non-refcounting cases). This avoids copying u2.

Closes GH-12086.

show more ...


# ffd7018f 30-Aug-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-11972: RecursiveCallbackFilterIterator regression in 8.1.18

When you do an assignment between two zvals (no, not zval*), you copy
all fields. This includes the additional u2 data.

Fix GH-11972: RecursiveCallbackFilterIterator regression in 8.1.18

When you do an assignment between two zvals (no, not zval*), you copy
all fields. This includes the additional u2 data. So that means for
example the Z_NEXT index gets copied, which in some cases can therefore
cause a cycle in zend_hash lookups.
Instead of doing an assignment, we should be doing a ZVAL_COPY (or
ZVAL_COPY_VALUE for non-refcounting cases). This avoids copying u2.

Closes GH-12086.

show more ...


# d5ad7510 08-Jun-2023 George Peter Banyard

More usage of known zend_str instead of C string (#11381)


# 99fa740a 06-Jun-2023 George Peter Banyard

Use common function for TypeError on illegal offset access (#10544)

This merges all usages of emitting an offset TypeError into a new ZEND_API function
zend_illegal_container_offset(cons

Use common function for TypeError on illegal offset access (#10544)

This merges all usages of emitting an offset TypeError into a new ZEND_API function
zend_illegal_container_offset(const zend_string* container, const zval *offset, int type);

Where the container should represent the type on which the access is attempted (e.g. string, array)
The offset zval that is used, where the error message will display its type
The type of access, which should be a BP_VAR_* constant, to get special message for isset/empty/unset

show more ...


# 81e50b4e 02-May-2023 nielsdos <7771979+nielsdos@users.noreply.github.com>

Fix GH-11178: Segmentation fault in spl_array_it_get_current_data (PHP 8.1.18)

Dynamic property case in zend_get_property_info() can return NULL for
prop info. This was not handled.

Fix GH-11178: Segmentation fault in spl_array_it_get_current_data (PHP 8.1.18)

Dynamic property case in zend_get_property_info() can return NULL for
prop info. This was not handled.

Closes GH-11182.

show more ...


# 9aaa5cd0 17-Mar-2023 Ilija Tovilo

By-ref modification of typed and readonly props through ArrayIterator

Fixes GH-10844
Closes GH-10872


# 49b2ff5d 02-Mar-2023 NathanFreeman <1056159381@qq.com>

Fix GH-10519: Array Data Address Reference Issue

We need to carry around a reference to the underlying Bucket to be able to modify it by reference.

Closes GH-10749

Signed-o

Fix GH-10519: Array Data Address Reference Issue

We need to carry around a reference to the underlying Bucket to be able to modify it by reference.

Closes GH-10749

Signed-off-by: George Peter Banyard <girgias@php.net>

show more ...


# 90047253 26-Feb-2023 Marcos Marcolin <48370677+marcosmarcolin@users.noreply.github.com>

chore: standardize the visibility of functions. (#10708)

Co-authored-by: Marcos Marcolin <marcos@ixcsoft.com.br>


# 641fe23e 08-Feb-2023 Marcos Marcolin <48370677+marcosmarcolin@users.noreply.github.com>

Improve illegal offset error messages (#10504)

Co-authored-by: Marcos Marcolin <marcos@ixcsoft.com.br>


# d1fc0017 14-Sep-2022 Bob Weinand

Revert "Fix compilation on MacOS"

This reverts commit 800c6672e57a01d68dcaba36f8f7d65c6871aafc.

Reverted along with a01dd9fedaecd2e5b95bc5c2e8d6542116addeae.


Revision tags: php-8.2.0RC1, php-8.1.10, php-8.0.23
# 800c6672 24-Aug-2022 Bob Weinand

Fix compilation on MacOS

memrchr has an always available equivalent under the name of zend_memrchr.

Signed-off-by: Bob Weinand <bobwei9@hotmail.com>


# adb45a63 30-Aug-2022 Máté Kocsis

Fix GH-9186 @strict-properties can be bypassed using unserialization (#9354)

* Emit deprecation warnings when adding dynamic properties to classes during unserialization - this will become a

Fix GH-9186 @strict-properties can be bypassed using unserialization (#9354)

* Emit deprecation warnings when adding dynamic properties to classes during unserialization - this will become an Error in php 9.0.
(Adding dynamic properties in other contexts was already a deprecation warning - the use case of unserialization was overlooked)
* Throw an error when attempting to add a dynamic property to a `readonly` class when unserializing
* Add new serialization methods `__serialize`/`__unserialize` for SplFixedArray to avoid creating deprecated dynamic
properties that would then be added to the backing fixed-size array
* Don't add named dynamic/declared properties (e.g. $obj->foo) of SplFixedArray to the backing array when unserializing
* Update tests to declare properties or to expect the deprecation warning
* Add news entry

Co-authored-by: Tyson Andre <tysonandre775@hotmail.com>

show more ...

Revision tags: php-8.0.23RC1, php-8.1.10RC1, php-8.2.0beta3
# b73f139c 02-Aug-2022 Máté Kocsis

Declare ext/spl constants in stubs (#9226)

Revision tags: php-8.2.0beta2, php-8.1.9, php-8.0.22, php-8.1.9RC1, php-8.2.0beta1, php-8.0.22RC1
# 4df3dd76 08-Jul-2022 Arnaud Le Blanc

Reduce memory allocated by var_export, json_encode, serialize, and other (#8902)

smart_str uses an over-allocated string to optimize for append operations. Functions that use smart_str tend

Reduce memory allocated by var_export, json_encode, serialize, and other (#8902)

smart_str uses an over-allocated string to optimize for append operations. Functions that use smart_str tend to return the over-allocated string directly. This results in unnecessary memory usage, especially for small strings.

The overhead can be up to 231 bytes for strings smaller than that, and 4095 for other strings. This can be avoided for strings smaller than `4096 - zend_string header size - 1` by reallocating the string.

This change introduces `smart_str_trim_to_size()`, and calls it in `smart_str_extract()`. Functions that use `smart_str` are updated to use `smart_str_extract()`.

Fixes GH-8896

show more ...

Revision tags: php-8.0.21, php-8.1.8, php-8.2.0alpha3
# 3b92a966 25-Jun-2022 Ilija Tovilo

Convert return type of various object handlers from int to zend_result (#8755)

12345678910>>...21