<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/php-git.git/ext/standard/tests/array, branch php-7.1.11</title>
<subtitle>git.php.net: repository/php-src.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/'/>
<entry>
<title>Merge branch 'PHP-7.0' into PHP-7.1</title>
<updated>2017-05-10T23:50:37+00:00</updated>
<author>
<name>Sara Golemon</name>
<email>pollita@php.net</email>
</author>
<published>2017-05-10T23:50:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=90bd4be3f9362f766ef5f1998acad0029fde3275'/>
<id>90bd4be3f9362f766ef5f1998acad0029fde3275</id>
<content type='text'>
* PHP-7.0:
  Remove typo from test header
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* PHP-7.0:
  Remove typo from test header
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove typo from test header</title>
<updated>2017-05-10T23:50:19+00:00</updated>
<author>
<name>Sara Golemon</name>
<email>pollita@php.net</email>
</author>
<published>2017-05-10T23:50:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=b8e0351978b19d0667090e0ffbc6752cffe27f32'/>
<id>b8e0351978b19d0667090e0ffbc6752cffe27f32</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed bug #74361</title>
<updated>2017-04-02T11:19:32+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2017-04-02T11:19:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=c8034514edadbafc4376f107e2a4ba52b7b17ff4'/>
<id>c8034514edadbafc4376f107e2a4ba52b7b17ff4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'PHP-7.0' into PHP-7.1</title>
<updated>2016-10-20T11:26:34+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikic@php.net</email>
</author>
<published>2016-10-20T11:26:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=736633310cc5475ee9254321a8f0aeb0cbf797cc'/>
<id>736633310cc5475ee9254321a8f0aeb0cbf797cc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix bug #71241: array_replace_recursive mutates ref params</title>
<updated>2016-10-20T11:22:04+00:00</updated>
<author>
<name>Adam Saponara</name>
<email>as@php.net</email>
</author>
<published>2016-08-26T21:33:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=55d17662cb61bc29f443276b0cd50b3a62f91acc'/>
<id>55d17662cb61bc29f443276b0cd50b3a62f91acc</id>
<content type='text'>
`array_replace_recursive` can sometimes mutate its params if
references are nested within. This differs from the PHP 5 behavior.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`array_replace_recursive` can sometimes mutate its params if
references are nested within. This differs from the PHP 5 behavior.
</pre>
</div>
</content>
</entry>
<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://git.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://git.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://git.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://git.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://git.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>
</feed>
