<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/php-git.git/ext/com_dotnet, branch php-7.4.3</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>Fix #79247: Garbage collecting variant objects segfaults</title>
<updated>2020-02-13T14:09:24+00:00</updated>
<author>
<name>Christoph M. Becker</name>
<email>cmbecker69@gmx.de</email>
</author>
<published>2020-02-08T09:58:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=7acaa4020d0eeb2911e70148ac57787f085e03e0'/>
<id>7acaa4020d0eeb2911e70148ac57787f085e03e0</id>
<content type='text'>
variant objects have no (declared) properties, so the `get_properties`
handlers returns a pointer to constant storage for efficiency reasons.
This pointer must not be returned from the `get_gc` handler, though;
instead we set up an own `get_gc` handler and return NULL from it, to
signal that there are no properties to collect.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
variant objects have no (declared) properties, so the `get_properties`
handlers returns a pointer to constant storage for efficiency reasons.
This pointer must not be returned from the `get_gc` handler, though;
instead we set up an own `get_gc` handler and return NULL from it, to
signal that there are no properties to collect.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'PHP-7.3' into PHP-7.4</title>
<updated>2019-10-19T09:51:05+00:00</updated>
<author>
<name>Christoph M. Becker</name>
<email>cmbecker69@gmx.de</email>
</author>
<published>2019-10-19T09:50:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=ee6a71ca7350c5c9730275a264a9c173940b071b'/>
<id>ee6a71ca7350c5c9730275a264a9c173940b071b</id>
<content type='text'>
* PHP-7.3:
  Fix #78694: Appending to a variant array causes segfault
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* PHP-7.3:
  Fix #78694: Appending to a variant array causes segfault
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'PHP-7.2' into PHP-7.3</title>
<updated>2019-10-19T09:49:18+00:00</updated>
<author>
<name>Christoph M. Becker</name>
<email>cmbecker69@gmx.de</email>
</author>
<published>2019-10-19T09:48:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=ce035dc4a0732c090741c85f179f36a4b4b6b92d'/>
<id>ce035dc4a0732c090741c85f179f36a4b4b6b92d</id>
<content type='text'>
* PHP-7.2:
  Fix #78694: Appending to a variant array causes segfault
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* PHP-7.2:
  Fix #78694: Appending to a variant array causes segfault
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix #78694: Appending to a variant array causes segfault</title>
<updated>2019-10-19T09:47:00+00:00</updated>
<author>
<name>Christoph M. Becker</name>
<email>cmbecker69@gmx.de</email>
</author>
<published>2019-10-19T09:41:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=45a7723267741be4867306d18b15a4a27d67b0f7'/>
<id>45a7723267741be4867306d18b15a4a27d67b0f7</id>
<content type='text'>
`write_dimension` object handlers have to be able to handle `NULL`
`offset`s; for now we simply throw an exception instead of following
the `NULL` pointer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`write_dimension` object handlers have to be able to handle `NULL`
`offset`s; for now we simply throw an exception instead of following
the `NULL` pointer.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix #78650: new COM Crash</title>
<updated>2019-10-09T12:09:02+00:00</updated>
<author>
<name>Christoph M. Becker</name>
<email>cmbecker69@gmx.de</email>
</author>
<published>2019-10-09T12:03:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=4625fa181fd5e1c9b3d8ef291c7003bf51a70512'/>
<id>4625fa181fd5e1c9b3d8ef291c7003bf51a70512</id>
<content type='text'>
As of PHP 7.4.0, the `get_property_ptr_ptr` handler is mandatory; we
implement it to always return `NULL`, which is equivalent to not
setting the handler in former versions.

We add a portable and faster test case than what has been presented in
the bug ticket.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As of PHP 7.4.0, the `get_property_ptr_ptr` handler is mandatory; we
implement it to always return `NULL`, which is equivalent to not
setting the handler in former versions.

We add a portable and faster test case than what has been presented in
the bug ticket.
</pre>
</div>
</content>
</entry>
<entry>
<title>Report errors from stream read and write operations</title>
<updated>2019-07-22T15:17:28+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2019-07-18T13:25:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=d59aac58b3e7da7ad01a194fe9840d89725ea229'/>
<id>d59aac58b3e7da7ad01a194fe9840d89725ea229</id>
<content type='text'>
The php_stream_read() and php_stream_write() functions now return
an ssize_t value, with negative results indicating failure. Functions
like fread() and fwrite() will return false in that case.

As a special case, EWOULDBLOCK and EAGAIN on non-blocking streams
should not be regarded as error conditions, and be reported as
successful zero-length reads/writes instead. The handling of EINTR
remains unclear and is internally inconsistent (e.g. some code-paths
will automatically retry on EINTR, while some won't).

I'm landing this now to make sure the stream wrapper ops API changes
make it into 7.4 -- however, if the user-facing changes turn out to
be problematic we have the option of clamping negative returns to
zero in php_stream_read() and php_stream_write() to restore the
old behavior in a relatively non-intrusive manner.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The php_stream_read() and php_stream_write() functions now return
an ssize_t value, with negative results indicating failure. Functions
like fread() and fwrite() will return false in that case.

As a special case, EWOULDBLOCK and EAGAIN on non-blocking streams
should not be regarded as error conditions, and be reported as
successful zero-length reads/writes instead. The handling of EINTR
remains unclear and is internally inconsistent (e.g. some code-paths
will automatically retry on EINTR, while some won't).

I'm landing this now to make sure the stream wrapper ops API changes
make it into 7.4 -- however, if the user-facing changes turn out to
be problematic we have the option of clamping negative returns to
zero in php_stream_read() and php_stream_write() to restore the
old behavior in a relatively non-intrusive manner.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix TsHashTable related race conditions</title>
<updated>2019-07-08T08:31:36+00:00</updated>
<author>
<name>Christoph M. Becker</name>
<email>cmbecker69@gmx.de</email>
</author>
<published>2019-07-01T08:18:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=98b6330ab45732dcb16bb714d66ca1d987531406'/>
<id>98b6330ab45732dcb16bb714d66ca1d987531406</id>
<content type='text'>
Although TsHashTable and the according API are supposed to easily make
a HashTable thread-safe, they do not; for instance, there can be race
conditions between finding and updating entries.  We therefore avoid
the usage of TsHashTable in favor of a HashTable with our own mutex
management.

The patch has been provided by krakjoe@php.net; I only did some minor
fixes and tweaks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Although TsHashTable and the according API are supposed to easily make
a HashTable thread-safe, they do not; for instance, there can be race
conditions between finding and updating entries.  We therefore avoid
the usage of TsHashTable in favor of a HashTable with our own mutex
management.

The patch has been provided by krakjoe@php.net; I only did some minor
fixes and tweaks.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix memory leak in COM ctor</title>
<updated>2019-06-29T12:51:13+00:00</updated>
<author>
<name>Christoph M. Becker</name>
<email>cmbecker69@gmx.de</email>
</author>
<published>2019-06-29T12:47:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=8357a696ab0b7aba4e3e147f48544c103ef9bf83'/>
<id>8357a696ab0b7aba4e3e147f48544c103ef9bf83</id>
<content type='text'>
We have to free strings returned from php_com_olestring_to_string().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We have to free strings returned from php_com_olestring_to_string().
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace ZVAL_COPY() and ZVAL_COPY_VALUE() for IS_OBJECT by cheaper macros</title>
<updated>2019-05-28T17:10:02+00:00</updated>
<author>
<name>Dmitry Stogov</name>
<email>dmitry@zend.com</email>
</author>
<published>2019-05-28T17:10:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=83804519dffcbb23ef689b37816ee28f2c3192e0'/>
<id>83804519dffcbb23ef689b37816ee28f2c3192e0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix saproxy_property_write signature</title>
<updated>2019-04-15T12:33:47+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2019-04-15T12:33:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=0c8a2d8d2a44742ed8329ce90fdb91a6aa54c5bc'/>
<id>0c8a2d8d2a44742ed8329ce90fdb91a6aa54c5bc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
