felipe Mon, 03 Aug 2009 13:26:15 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=286736
Log: - Improved. No ugly copy. (Tony) Changed paths: U php/php-src/branches/PHP_5_2/NEWS U php/php-src/branches/PHP_5_2/ext/standard/streamsfuncs.c U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/standard/streamsfuncs.c U php/php-src/trunk/ext/standard/streamsfuncs.c Modified: php/php-src/branches/PHP_5_2/NEWS =================================================================== --- php/php-src/branches/PHP_5_2/NEWS 2009-08-03 13:24:35 UTC (rev 286735) +++ php/php-src/branches/PHP_5_2/NEWS 2009-08-03 13:26:15 UTC (rev 286736) @@ -3,7 +3,7 @@ ?? ??? 2009, PHP 5.2.11 - Fixed regression in cURL extension that prevented flush of data to output defined as a file handle. (Ilia) -- Fixed memory leak in stream_is_local(). (Felipe) +- Fixed memory leak in stream_is_local(). (Felipe, Tony) - Fixed bug #49132 (posix_times returns false without error). (phpbugs at gunnu dot us) Modified: php/php-src/branches/PHP_5_2/ext/standard/streamsfuncs.c =================================================================== --- php/php-src/branches/PHP_5_2/ext/standard/streamsfuncs.c 2009-08-03 13:24:35 UTC (rev 286735) +++ php/php-src/branches/PHP_5_2/ext/standard/streamsfuncs.c 2009-08-03 13:26:15 UTC (rev 286736) @@ -1382,32 +1382,24 @@ */ PHP_FUNCTION(stream_is_local) { - zval *zstream; + zval **zstream; php_stream *stream = NULL; php_stream_wrapper *wrapper = NULL; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &zstream) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &zstream) == FAILURE) { RETURN_FALSE; } - if(Z_TYPE_P(zstream) == IS_RESOURCE) { - php_stream_from_zval(stream, &zstream); + if(Z_TYPE_PP(zstream) == IS_RESOURCE) { + php_stream_from_zval(stream, zstream); if(stream == NULL) { RETURN_FALSE; } wrapper = stream->wrapper; } else { - zval *copy_tmp; + convert_to_string_ex(zstream); - ALLOC_ZVAL(copy_tmp); - *copy_tmp = *zstream; - zval_copy_ctor(copy_tmp); - INIT_PZVAL(copy_tmp); - convert_to_string(copy_tmp); - - wrapper = php_stream_locate_url_wrapper(Z_STRVAL_P(copy_tmp), NULL, 0 TSRMLS_CC); - - zval_ptr_dtor(©_tmp); + wrapper = php_stream_locate_url_wrapper(Z_STRVAL_PP(zstream), NULL, 0 TSRMLS_CC); } if(!wrapper) { Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2009-08-03 13:24:35 UTC (rev 286735) +++ php/php-src/branches/PHP_5_3/NEWS 2009-08-03 13:26:15 UTC (rev 286736) @@ -6,7 +6,7 @@ - Fixed open_basedir circumvention for mail.log. (Maksymilian Arciemowicz, Stas) - Fixed signature generation/validation for zip archives in ext/phar. (Greg) -- Fixed memory leak in stream_is_local(). (Felipe) +- Fixed memory leak in stream_is_local(). (Felipe, Tony) - Fixed bug #49132 (posix_times returns false without error). (phpbugs at gunnu dot us) Modified: php/php-src/branches/PHP_5_3/ext/standard/streamsfuncs.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/streamsfuncs.c 2009-08-03 13:24:35 UTC (rev 286735) +++ php/php-src/branches/PHP_5_3/ext/standard/streamsfuncs.c 2009-08-03 13:26:15 UTC (rev 286736) @@ -1448,32 +1448,24 @@ */ PHP_FUNCTION(stream_is_local) { - zval *zstream; + zval **zstream; php_stream *stream = NULL; php_stream_wrapper *wrapper = NULL; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &zstream) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &zstream) == FAILURE) { RETURN_FALSE; } - if(Z_TYPE_P(zstream) == IS_RESOURCE) { - php_stream_from_zval(stream, &zstream); + if(Z_TYPE_PP(zstream) == IS_RESOURCE) { + php_stream_from_zval(stream, zstream); if(stream == NULL) { RETURN_FALSE; } wrapper = stream->wrapper; } else { - zval *copy_tmp; + convert_to_string_ex(zstream); - ALLOC_ZVAL(copy_tmp); - *copy_tmp = *zstream; - zval_copy_ctor(copy_tmp); - INIT_PZVAL(copy_tmp); - convert_to_string(copy_tmp); - - wrapper = php_stream_locate_url_wrapper(Z_STRVAL_P(copy_tmp), NULL, 0 TSRMLS_CC); - - zval_ptr_dtor(©_tmp); + wrapper = php_stream_locate_url_wrapper(Z_STRVAL_PP(zstream), NULL, 0 TSRMLS_CC); } if(!wrapper) { Modified: php/php-src/trunk/ext/standard/streamsfuncs.c =================================================================== --- php/php-src/trunk/ext/standard/streamsfuncs.c 2009-08-03 13:24:35 UTC (rev 286735) +++ php/php-src/trunk/ext/standard/streamsfuncs.c 2009-08-03 13:26:15 UTC (rev 286736) @@ -1735,32 +1735,24 @@ */ PHP_FUNCTION(stream_is_local) { - zval *zstream; + zval **zstream; php_stream *stream = NULL; php_stream_wrapper *wrapper = NULL; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &zstream) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &zstream) == FAILURE) { RETURN_FALSE; } - if(Z_TYPE_P(zstream) == IS_RESOURCE) { - php_stream_from_zval(stream, &zstream); + if(Z_TYPE_PP(zstream) == IS_RESOURCE) { + php_stream_from_zval(stream, zstream); if(stream == NULL) { RETURN_FALSE; } wrapper = stream->wrapper; } else { - zval *copy_tmp; + convert_to_string_ex(zstream); - ALLOC_ZVAL(copy_tmp); - *copy_tmp = *zstream; - zval_copy_ctor(copy_tmp); - INIT_PZVAL(copy_tmp); - convert_to_string(copy_tmp); - - wrapper = php_stream_locate_url_wrapper(Z_STRVAL_P(copy_tmp), NULL, 0 TSRMLS_CC); - - zval_ptr_dtor(©_tmp); + wrapper = php_stream_locate_url_wrapper(Z_STRVAL_PP(zstream), NULL, 0 TSRMLS_CC); } if(!wrapper) {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php