Commit graph

739 commits

Author SHA1 Message Date
Sammy Kaye Powers
478f119ab9 Update copyright headers to 2017 2017-01-04 11:14:55 -06:00
Adam Saponara
55d17662cb Fix bug #71241: array_replace_recursive mutates ref params
`array_replace_recursive` can sometimes mutate its params if
references are nested within. This differs from the PHP 5 behavior.
2016-10-20 13:22:04 +02:00
Andrea Faulds
d690014bf3 Remove zpp fallback code (always use Fast ZPP)
Squashed commit of the following:

commit 3e27fbb3d2
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Sep 11 19:14:37 2016 +0100

    Keep dummy FAST_ZPP macro for compatibility

commit 8a7cfd00de
Author: Andrea Faulds <ajf@ajf.me>
Date:   Mon Sep 5 22:36:03 2016 +0100

    Remove FAST_ZPP macro and plain zpp fallback code
2016-09-11 22:44:46 +01:00
Kalle Sommer Nielsen
1e4cae28b2 Seems like I did a bad merge earlier, this should make PHP-7.0 sync with 7.1/master properly now 2016-08-17 16:34:22 +02:00
Nikita Popov
8a442a33c3 Fix ref handling in array_merge/replace_recursive()
As usual, if the reference has rc=1 it really isn't a reference.
2016-07-29 19:07:04 +02:00
Xinchen Hui
3c3b8c8365 Fixed bug #72622 (array_walk + array_replace_recursive create references from nothing) 2016-07-20 16:12:37 +08:00
Dmitry Stogov
bfcf32237e Fixed bug #72369 (array_merge() produces references in PHP7) 2016-06-09 15:07:44 +03:00
Thomas Punt
0e21742bf8 Tidy up 2016-05-16 19:15:40 +02:00
Thomas Punt
367fde9947 Remove unnecessary boundary checks 2016-05-16 19:15:40 +02:00
Thomas Punt
39052d4d75 Resolve bug #72017 2016-05-16 19:15:40 +02:00
Bob Weinand
74ef863f5d Fixed bug #72116 (7.0.6 array_fill optimization breaks implementation) 2016-04-28 11:02:47 +02:00
Nikita Popov
d8590940a1 Use symtable lookup for arrays in array_column 2016-04-16 09:59:01 +02:00
Nikita Popov
28801bf249 Respect property visibility in array_column 2016-04-16 09:59:01 +02:00
Nikita Popov
c0d8dc5bd7 Fixed bug #72031 2016-04-16 09:58:57 +02:00
Dmitry Stogov
b31240f995 Optimized array_fill(). This is a perfect function for fast creation of packed arrays. 2016-04-07 01:01:11 +03:00
Nikita Popov
b1e854f776 Fix bug #71334
Always duplicate the array before doing a sort with user-defined
comparison function, to avoid access to the intermediate
inconsistent state.

I've also dropped the "array modification" warning, as protection
against modifications is no longer relevant if we're always working
on a copy anyway.

This also required some changes to how SplArray forwards calls to
sorting functions.
2016-03-30 22:49:27 +02:00
Xinchen Hui
345ecd9822 Fixed #71837 (Wrong arrays behaviour) 2016-03-17 07:41:41 -07:00
Dmitry Stogov
ab800642df Introduce zend_symtable_exists_ind() for API consistency 2016-03-02 11:53:47 +03:00
Xinchen Hui
2d4186dde7 Use hash_exists_ind in symbol table 2016-03-02 12:11:13 +08:00
Xinchen Hui
961c8d568d Maybe we should introduce a symtable_exists_ind 2016-03-01 20:01:02 +08:00
Xinchen Hui
186844be92 Fixed bug #71695 (Global variables are reserved before execution).
Instead of slow down hash_merge, we may also check the array(whether it
contains INDIRECT) outside of the loop, however, consisdering hash_merge
is not widly used, I prefer fix this in the current way to keep the
codes simple
2016-03-01 19:19:07 +08:00
Xinchen Hui
c299b272c7 Fixed bug #71660 (array_column behaves incorrectly after foreach by reference) 2016-02-25 16:07:22 +08:00
Xinchen Hui
0fccd154bd Fixed bug #71603 (compact() maintains references in php7) 2016-02-16 11:02:57 +08:00
Xinchen Hui
e917402f05 Fixed typo (I think it should be a typo) 2016-02-15 15:26:44 +08:00
Nikita Popov
7f474086e3 Fix extract() overwriting its own argument
Already covered by bug46873.phpt under valgrind.
2016-02-13 17:39:26 +01:00
Antony Dovgal
8b023e9192 use correct pointer in the math 2016-02-01 16:33:04 +03:00
Thomas Punt
3bbcd84e2f re-apply patch for github PR #1695 2016-01-12 07:07:51 +01:00
Anatol Belski
66d10fe085 Revert "patch for github PR #1695"
This reverts commit 58dd956b63.

crashes on travis
2016-01-11 22:03:36 +01:00
Thomas Punt
58dd956b63 patch for github PR #1695 2016-01-11 21:11:55 +01:00
Lior Kaplan
ed35de784f Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Happy new year (Update copyright to 2016)
2016-01-01 19:48:25 +02:00
Lior Kaplan
49493a2dcf Happy new year (Update copyright to 2016) 2016-01-01 19:21:47 +02:00
Xinchen Hui
c56efb848b Fixed bug #71220 (Null pointer deref (segfault) in compact via ob_start) 2015-12-25 21:25:53 -08:00
Xinchen Hui
6313e16a04 Improved fix for bug (count on symbol table) 2015-11-23 06:12:03 -08:00
Xinchen Hui
eada2aa91a Fixed bug (count on symbol tables) 2015-11-21 20:58:29 -08:00
Xinchen Hui
fce44a5a13 Fixed bug #70910 (extract() breaks variable references) 2015-11-13 19:39:59 -08:00
Reeze Xia
c4297a5a29 This couldn't be false as it has been checked before 2015-10-30 19:50:54 +08:00
Reeze Xia
68b431e37d Use h parameter to avoid duplicate ht access of array_combine() 2015-10-30 19:49:04 +08:00
Xinchen Hui
179fba3f38 Fixed bug #70808 (array_merge_recursive corrupts memory of unset items)
I knew, this fix seems ugly
2015-10-29 14:33:58 +08:00
Dmitry Stogov
3815e97136 Fixed bug #70668 (array_keys() doesn't respect references when $strict is true) 2015-10-08 14:59:02 +03:00
Dmitry Stogov
24e88348f3 Revert "Merge branch 'array_keys_strict_refs' of https://github.com/tony2001/php-src"
This reverts commit a6be0f3fd6.
2015-10-06 23:48:12 +03:00
Bob Weinand
a6be0f3fd6 Merge branch 'array_keys_strict_refs' of https://github.com/tony2001/php-src 2015-10-05 14:50:04 +02:00
Dmitry Stogov
560e4fa393 Removed or simplified incorrect SEPARATE_*() macros usage. 2015-09-29 11:17:43 +03:00
Dmitry Stogov
8fe171a3e0 Don't allocate memory for empty HashTables. 2015-09-17 19:17:10 +03:00
Dmitry Stogov
c174e4cd73 Change array sorting implementation to avoid two level callbacks system.
Simplify zval comparion API.
2015-09-10 02:51:23 +03:00
Dmitry Stogov
2ea18cd431 Better array_compare improvement 2015-09-09 15:11:03 +03:00
Xinchen Hui
67d1a47887 Improved array_compare 2015-09-09 17:56:44 +08:00
Dmitry Stogov
1f0f768e3f Avoid duplication 2015-08-26 14:53:41 +03:00
Anatol Belski
38c19d43c1 fix array size calculation for range, related to bug #70239 2015-08-14 14:34:48 +02:00
Anatol Belski
01ee09f3f7 Fixed bug #70239 Creating a huge array doesn't result in exhausted, but segfault 2015-08-14 14:34:47 +02:00
Xinchen Hui
dc5c6ab774 Fixed bug #70250 (extract() turns array elements to references) 2015-08-13 13:30:25 +08:00