From: Wez Furlong Date: Tue, 19 Mar 2002 13:42:25 +0000 (+0000) Subject: Make file_get_wrapper_data return the underlying PHP object for X-Git-Tag: php-4.3.0dev-ZendEngine2-Preview1~1231 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b808af86017b464554a2c2b7603a893f5d9a2e78;p=php Make file_get_wrapper_data return the underlying PHP object for user-space streams. --- diff --git a/main/streams.c b/main/streams.c index a4f3d6ee21..2cdbd6f27a 100755 --- a/main/streams.c +++ b/main/streams.c @@ -120,7 +120,7 @@ PHPAPI int _php_stream_free(php_stream *stream, int close_options TSRMLS_DC) /* } if (stream->wrapperdata) { - FREE_ZVAL(stream->wrapperdata); + zval_ptr_dtor(&stream->wrapperdata); stream->wrapperdata = NULL; } diff --git a/main/user_streams.c b/main/user_streams.c index 164639e1fd..b5d3701e20 100644 --- a/main/user_streams.c +++ b/main/user_streams.c @@ -152,6 +152,10 @@ static php_stream *user_wrapper_factory(char *filename, char *mode, int options, if (Z_TYPE_P(zopened) == IS_STRING && opened_path) { *opened_path = estrndup(Z_STRVAL_P(zopened), Z_STRLEN_P(zopened)); } + + /* set wrapper data to be a reference to our object */ + stream->wrapperdata = us->object; + zval_add_ref(&stream->wrapperdata); } else { /* destroy the object */ zval_ptr_dtor(&us->object);