hmm, backing out this change, as it seems to cause problems with user-space

streams and filters (the ZE needs to close them before it blows away the
user-space code.

Noticed by Dmitry.  Still need to find out how to avoid double-closing streams.
This commit is contained in:
Wez Furlong 2005-06-09 12:15:14 +00:00
parent e0b0ae9ce7
commit a4874a5533

View file

@ -835,12 +835,10 @@ static FILE *php_fopen_wrapper_for_zend(const char *filename, char **opened_path
} }
/* }}} */ /* }}} */
#if wez_0
static void stream_closer_for_zend(void *handle TSRMLS_DC) static void stream_closer_for_zend(void *handle TSRMLS_DC)
{ {
php_stream_close((php_stream*)handle); php_stream_close((php_stream*)handle);
} }
#endif
static long stream_fteller_for_zend(void *handle TSRMLS_DC) static long stream_fteller_for_zend(void *handle TSRMLS_DC)
{ {
@ -859,10 +857,7 @@ static int php_stream_open_for_zend(const char *filename, zend_file_handle *hand
handle->free_filename = 0; handle->free_filename = 0;
handle->handle.stream.handle = stream; handle->handle.stream.handle = stream;
handle->handle.stream.reader = (zend_stream_reader_t)_php_stream_read; handle->handle.stream.reader = (zend_stream_reader_t)_php_stream_read;
/* don't set this; all streams are tracked as part of the resource system, handle->handle.stream.closer = stream_closer_for_zend;
* and we'll end up double-free'ing them if we allow zend to close them
* down after the resource list has been cleaned up */
handle->handle.stream.closer = NULL; /* stream_closer_for_zend; */
handle->handle.stream.fteller = stream_fteller_for_zend; handle->handle.stream.fteller = stream_fteller_for_zend;
handle->handle.stream.interactive = 0; handle->handle.stream.interactive = 0;
/* suppress warning if this stream is not explicitly closed */ /* suppress warning if this stream is not explicitly closed */