<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/php-git.git/ext/standard/tests/array, branch microseconds</title>
<subtitle>git.php.net: repository/php-src.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/php-git.git/'/>
<entry>
<title>add extra test to protected behavior of compact and array string key order</title>
<updated>2016-09-01T11:01:42+00:00</updated>
<author>
<name>Márcio Almada</name>
<email>marcio3w@gmail.com</email>
</author>
<published>2016-09-01T07:52:54+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/php-git.git/commit/?id=cba560e67fbd44abf6648dd01ec0f231123993cd'/>
<id>cba560e67fbd44abf6648dd01ec0f231123993cd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix unintentional bc break with compact('this') behavior</title>
<updated>2016-09-01T11:01:38+00:00</updated>
<author>
<name>Márcio Almada</name>
<email>marcio3w@gmail.com</email>
</author>
<published>2016-09-01T07:50:58+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/php-git.git/commit/?id=00c2c3a4761e7e4f9d4c4721da684c051588dfc2'/>
<id>00c2c3a4761e7e4f9d4c4721da684c051588dfc2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix memory unsafety in array_walk()</title>
<updated>2016-07-29T22:15:32+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikic@php.net</email>
</author>
<published>2016-07-29T16:51:06+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/php-git.git/commit/?id=11e050920d3052d2b14a9cff6c4c5764d674fc46'/>
<id>11e050920d3052d2b14a9cff6c4c5764d674fc46</id>
<content type='text'>
Fixes bugs #61967, #62607, #69068, #70713.

The primary changes are:
a) Use the ht_iterator mechanism to ensure safety not only if the
   iterated array itself changes, but also if it is replaced (and
   potentially destroyed) entirely. We use the same semantics for
   behavior under modification as foreach-by-reference. In
   particular, we advance to the next element before processing it.
   If the iterated entity is exchanged we iterate the new one from
   the start. If it is not an array/object we warn and abort.
b) Always create a reference to the current value. Previously the
   code kept the value as a non-reference and updated it to the
   reference value produced by the user callback. However this is
   unsafe, as the array may have been reallocated in the meantime,
   so the previous value pointer is no longer value.
c) Around a recursive walk, incref the reference containing the
   array. This ensures that the location where the currently
   iterated value is stored cannot be freed.

One problem I was not able to solve is that we cannot decrement
the apply count if the array is exchanged during a recursive walk.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes bugs #61967, #62607, #69068, #70713.

The primary changes are:
a) Use the ht_iterator mechanism to ensure safety not only if the
   iterated array itself changes, but also if it is replaced (and
   potentially destroyed) entirely. We use the same semantics for
   behavior under modification as foreach-by-reference. In
   particular, we advance to the next element before processing it.
   If the iterated entity is exchanged we iterate the new one from
   the start. If it is not an array/object we warn and abort.
b) Always create a reference to the current value. Previously the
   code kept the value as a non-reference and updated it to the
   reference value produced by the user callback. However this is
   unsafe, as the array may have been reallocated in the meantime,
   so the previous value pointer is no longer value.
c) Around a recursive walk, incref the reference containing the
   array. This ensures that the location where the currently
   iterated value is stored cannot be freed.

One problem I was not able to solve is that we cannot decrement
the apply count if the array is exchanged during a recursive walk.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'PHP-7.0' into PHP-7.1</title>
<updated>2016-07-29T17:08:15+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikic@php.net</email>
</author>
<published>2016-07-29T17:08:15+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/php-git.git/commit/?id=261c436d8c5e93521edce531f650bae1fe814870'/>
<id>261c436d8c5e93521edce531f650bae1fe814870</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix ref handling in array_merge/replace_recursive()</title>
<updated>2016-07-29T17:07:04+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikic@php.net</email>
</author>
<published>2016-07-29T17:07:04+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/php-git.git/commit/?id=8a442a33c319a9663212e732dda4cd717d4efff6'/>
<id>8a442a33c319a9663212e732dda4cd717d4efff6</id>
<content type='text'>
As usual, if the reference has rc=1 it really isn't a reference.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As usual, if the reference has rc=1 it really isn't a reference.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'PHP-7.0'</title>
<updated>2016-07-20T08:12:49+00:00</updated>
<author>
<name>Xinchen Hui</name>
<email>laruence@gmail.com</email>
</author>
<published>2016-07-20T08:12:49+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/php-git.git/commit/?id=c35dab005c2c1048367b64acdd5e64420c34b091'/>
<id>c35dab005c2c1048367b64acdd5e64420c34b091</id>
<content type='text'>
* PHP-7.0:
  Fixed bug #72622 (array_walk + array_replace_recursive create references from nothing)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* PHP-7.0:
  Fixed bug #72622 (array_walk + array_replace_recursive create references from nothing)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed bug #72622 (array_walk + array_replace_recursive create references from nothing)</title>
<updated>2016-07-20T08:12:37+00:00</updated>
<author>
<name>Xinchen Hui</name>
<email>laruence@gmail.com</email>
</author>
<published>2016-07-20T08:12:37+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/php-git.git/commit/?id=3c3b8c8365dc9ac7d62034c9eecbabb4800b7353'/>
<id>3c3b8c8365dc9ac7d62034c9eecbabb4800b7353</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve array_rand distribution</title>
<updated>2016-07-06T11:35:13+00:00</updated>
<author>
<name>Leigh</name>
<email>leigh@php.net</email>
</author>
<published>2016-07-06T11:35:13+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/php-git.git/commit/?id=06607993f69a8e67758c301776b5db9525783498'/>
<id>06607993f69a8e67758c301776b5db9525783498</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use zend_sort in array_multisort (tests change is expected)</title>
<updated>2016-06-23T12:58:45+00:00</updated>
<author>
<name>Xinchen Hui</name>
<email>laruence@gmail.com</email>
</author>
<published>2016-06-23T12:58:45+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/php-git.git/commit/?id=eb65db08081385a7a182abc3561c13f514dd6748'/>
<id>eb65db08081385a7a182abc3561c13f514dd6748</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implemented RFC: Replace "Missing argument" warning with "Too few arguments" exception</title>
<updated>2016-06-15T23:32:02+00:00</updated>
<author>
<name>Dmitry Stogov</name>
<email>dmitry@zend.com</email>
</author>
<published>2016-06-15T23:32:02+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/php-git.git/commit/?id=ff363e2e7c58353b7e2751d1ca4d7bf616862aae'/>
<id>ff363e2e7c58353b7e2751d1ca4d7bf616862aae</id>
<content type='text'>
Squashed commit of the following:

commit 8b45fa2acb8cd92542a39e1e4720fe1f4fabc26c
Author: Dmitry Stogov &lt;dmitry@zend.com&gt;
Date:   Thu Jun 16 01:52:50 2016 +0300

    Separate slow path of ZEND_RECV into a cold function.

commit 9e18895ee59c64c93a96b1ba3061355c4663e962
Author: Dmitry Stogov &lt;dmitry@zend.com&gt;
Date:   Wed Jun 15 23:26:28 2016 +0300

    Required argument can't be IS_UNDEF anymore.

commit 662db66e3943d4455c65e4f987bb54abf724ecb2
Author: Dmitry Stogov &lt;dmitry@zend.com&gt;
Date:   Tue May 31 17:14:50 2016 +0300

    Replace "Missing argument" warning by "Too few arguments" exception.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Squashed commit of the following:

commit 8b45fa2acb8cd92542a39e1e4720fe1f4fabc26c
Author: Dmitry Stogov &lt;dmitry@zend.com&gt;
Date:   Thu Jun 16 01:52:50 2016 +0300

    Separate slow path of ZEND_RECV into a cold function.

commit 9e18895ee59c64c93a96b1ba3061355c4663e962
Author: Dmitry Stogov &lt;dmitry@zend.com&gt;
Date:   Wed Jun 15 23:26:28 2016 +0300

    Required argument can't be IS_UNDEF anymore.

commit 662db66e3943d4455c65e4f987bb54abf724ecb2
Author: Dmitry Stogov &lt;dmitry@zend.com&gt;
Date:   Tue May 31 17:14:50 2016 +0300

    Replace "Missing argument" warning by "Too few arguments" exception.
</pre>
</div>
</content>
</entry>
</feed>
