Xinchen Hui
6531719da5
Fixed bug #76505 (array_merge_recursive() is duplicating sub-array keys)
2018-06-21 17:26:05 +08:00
Gabriel Caruso
fc775f6915
Report unknown variables passed to compact()
2018-06-19 12:50:15 +02:00
Nikita Popov
777187cbaf
Don't use UNREFs during array operations
...
Perform DEREFs instead. We were already doing this in some, but not
all places.
While UNREFs are supposed to be transparent, in practice they have
rare observable side effects. Calling array_merge() on an array
should never change how that array behaves.
2018-06-09 13:20:13 +02:00
Xinchen Hui
0a0f6c495f
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed bug #76410 (SIGV in zend_mm_alloc_small)
Fix bug #76390 - do not allow invalid strings in range()
Conflicts:
ext/standard/array.c
2018-06-05 17:16:45 +08:00
Xinchen Hui
951e29f66e
Fixed bug #76410 (SIGV in zend_mm_alloc_small)
2018-06-05 17:15:57 +08:00
Stanislav Malyshev
c12fc77bdf
Fix bug #76390 - do not allow invalid strings in range()
2018-06-04 22:54:03 -07:00
Stanislav Malyshev
5fbb0988d1
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fix bug #76390 - do not allow invalid strings in range()
2018-06-04 22:51:38 -07:00
Stanislav Malyshev
73bf238507
Fix bug #76390 - do not allow invalid strings in range()
2018-06-04 22:44:05 -07:00
Dmitry Stogov
3c122e1605
Avoid rehashing of "packed" array
2018-05-30 20:17:25 +03:00
Anatol Belski
74be58938c
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Translate correct C++ version with suitable compiler
Fixed bug #76383 (array_map on $GLOBALS returns IS_INDIRECT)
2018-05-28 17:15:22 +02:00
Anatol Belski
d5ee654b71
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Translate correct C++ version with suitable compiler
Fixed bug #76383 (array_map on $GLOBALS returns IS_INDIRECT)
2018-05-28 17:13:55 +02:00
Dmitry Stogov
5eb1f92f31
Use zend_string_release_ex() instread of zend_string_release() in places, where we sure about string persistence.
2018-05-28 16:27:12 +03:00
Bob Weinand
97a8483143
Fixed bug #76383 (array_map on $GLOBALS returns IS_INDIRECT)
2018-05-28 00:48:35 +02:00
Dmitry Stogov
4ad9cf4605
Bit test optimization
2018-05-08 11:58:17 +03:00
Dmitry Stogov
c88be6aee1
Bit check micro-optimization
2018-04-28 14:13:12 +03:00
Christoph M. Becker
9993304da4
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fix arginfo for array_replace(_recursive) and array_merge(_recursive)
2018-04-13 15:36:15 +02:00
Christoph M. Becker
3770c2e463
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fix arginfo for array_replace(_recursive) and array_merge(_recursive)
2018-04-13 15:28:47 +02:00
Gabriel Caruso
bb79e5764b
Fix arginfo for array_replace(_recursive) and array_merge(_recursive)
2018-04-13 15:27:16 +02:00
timurib
f7f48643e7
Remove redundant warning in array_push() and array_unshift()
...
Cf. https://github.com/php/php-src/pull/3011 .
2018-03-25 17:49:04 +02:00
Dmitry Stogov
a795bd8265
Optimize zend_hash_real_init()
2018-03-23 00:13:45 +03:00
Dmitry Stogov
d1c6bda2bb
Fixed expectation
2018-03-22 12:48:22 +03:00
Dmitry Stogov
d7f2dc4ec6
Improve HashTable iterators handling:
...
- Avoid iterators check/update on each HashTable update opration
- Keep position equal (or above) nNumUsed instead of HT_INVALID_IDX
- Fixed iterators handling in array_unshift()
2018-03-22 02:41:49 +03:00
Anatol Belski
5e106778f0
Use const pointers
2018-03-20 11:12:25 +01:00
Anatol Belski
98aeb528c3
Remove unused assignment
2018-03-07 17:12:27 +01:00
Nikita Popov
4838e9799f
Merge branch 'PHP-7.2'
2018-03-05 15:33:34 +01:00
Nikita Popov
634a1ff033
Merge branch 'PHP-7.1' into PHP-7.2
2018-03-05 15:32:39 +01:00
Nikita Popov
fd5bd37ab1
Revert "Fixed bug #75961 (Strange references behavior)"
...
This reverts commit 94e9d0a2ae
.
This code needs to be mindful about modifications to the array
happening during callback execution. It was written in a way that
only accessed the reference, which is guaranteed not to move. The
changed implementation instead accesses the array slot, leading to
use-after-free.
Run ext/standard/tests/array/bug61967.phpt under valgrind to see
the issue.
2018-03-05 15:32:21 +01:00
Xinchen Hui
55ef99e3b8
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Update NEWS
Fixed bug #75961 (Strange references behavior)
Conflicts:
ext/standard/array.c
2018-02-17 16:39:31 +08:00
Xinchen Hui
26dda8999c
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed bug #75961 (Strange references behavior)
2018-02-17 16:33:39 +08:00
Xinchen Hui
94e9d0a2ae
Fixed bug #75961 (Strange references behavior)
2018-02-17 16:33:15 +08:00
Dmitry Stogov
6634d5e313
Use HT_FLAGS() macro
2018-01-22 14:58:16 +03:00
Dmitry Stogov
ebf900a9eb
Introduce mcros to access HashTable iterators counter
2018-01-22 14:14:35 +03:00
Dmitry Stogov
9cbb521094
Access HashTable.u.flags through HT_FLAGS() macro.
2018-01-22 13:36:15 +03:00
Dmitry Stogov
465a8cfbad
Use reference-counting instead of duplication
2018-01-19 13:56:31 +03:00
Dmitry Stogov
40b8483165
Use SEPARATE_ARRAY
2018-01-17 03:08:22 +03:00
Nikita Popov
5c983ae852
Merge branch 'PHP-7.2'
2018-01-12 18:34:34 +01:00
Nikita Popov
8c73fc8027
Fixed bug #75653
2018-01-12 18:30:22 +01:00
Xinchen Hui
a307689ba7
Remove unnecessary initialization:w
2018-01-02 14:03:34 +08:00
Xinchen Hui
a6519d0514
year++
2018-01-02 12:57:58 +08:00
Xinchen Hui
7a7ec01a49
year++
2018-01-02 12:55:14 +08:00
Xinchen Hui
ccd4716ec7
year++
2018-01-02 12:53:31 +08:00
Dmitry Stogov
efcbea4345
Cheaper reference construction
2017-12-26 13:30:25 +03:00
Dmitry Stogov
2bbcc04c20
Added special cases for array_diff(), when first argument is an empty array or an array with single element.
2017-12-12 01:51:37 +03:00
Dmitry Stogov
c5ba76d9de
Use cheaper API
2017-12-12 00:30:51 +03:00
Dmitry Stogov
778dfbc138
Use cheaper functions
2017-12-11 23:00:07 +03:00
Tom Van Looy
e4e26f2428
Remove RAND_RANGE() macro
...
The behavior of RANGE_RANGE() is 7.1 changed completely, from
rescaling an already generated number to generating a number
itself. Because of this str_shuffle() ended up generating two
random numbers on every iteration.
To avoid further misuse the function is dropped entirely. Extensions
for PHP >= 7.1 should directly call php_mt_rand_range().
2017-12-09 17:24:17 +01:00
Dmitry Stogov
185478d07e
Use cheaper SEPARATE macros
2017-12-07 22:35:17 +03:00
Dmitry Stogov
cc12acefcd
Use cheaper functions
2017-12-04 13:21:35 +03:00
Dmitry Stogov
ccc12b82da
Avoid unnecessary reference-counting on strings.
2017-11-16 17:09:32 +03:00
Xinchen Hui
a8a17a72b0
RC manipulation cleanup
2017-11-01 10:25:10 +08:00