From: Xinchen Hui Date: Wed, 5 Mar 2014 03:28:31 +0000 (+0800) Subject: Fixed stream_cast X-Git-Tag: POST_PHPNG_MERGE~412^2~421^2~10 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1a828f42eadbadc5dbe5f26e34844f2bcc2d4832;p=php Fixed stream_cast --- diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index 1e08f6806f..a8ce014a9c 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -492,6 +492,7 @@ PHP_FUNCTION(stream_get_meta_data) array_init(return_value); if (!ZVAL_IS_UNDEF(&stream->wrapperdata)) { + Z_ADDREF_P(&stream->wrapperdata); add_assoc_zval(return_value, "wrapper_data", &stream->wrapperdata); } if (stream->wrapper) { @@ -779,7 +780,6 @@ PHP_FUNCTION(stream_select) FD_ZERO(&efds); if (r_array != NULL) { - r_array = Z_REFVAL_P(r_array); set_count = stream_array_to_fd_set(r_array, &rfds, &max_fd TSRMLS_CC); if (set_count > max_set_count) max_set_count = set_count; @@ -787,7 +787,6 @@ PHP_FUNCTION(stream_select) } if (w_array != NULL) { - w_array = Z_REFVAL_P(w_array); set_count = stream_array_to_fd_set(w_array, &wfds, &max_fd TSRMLS_CC); if (set_count > max_set_count) max_set_count = set_count; @@ -795,7 +794,6 @@ PHP_FUNCTION(stream_select) } if (e_array != NULL) { - e_array = Z_REFVAL_P(e_array); set_count = stream_array_to_fd_set(e_array, &efds, &max_fd TSRMLS_CC); if (set_count > max_set_count) max_set_count = set_count; diff --git a/main/streams/userspace.c b/main/streams/userspace.c index 459da11770..a0839bd3fe 100644 --- a/main/streams/userspace.c +++ b/main/streams/userspace.c @@ -1510,7 +1510,7 @@ static int php_userstreamop_cast(php_stream *stream, int castas, void **retptr T us->wrapper->classname); break; } - if (Z_TYPE(retval) != IS_UNDEF || !zend_is_true(&retval TSRMLS_CC)) { + if (ZVAL_IS_UNDEF(&retval) || !zend_is_true(&retval TSRMLS_CC)) { break; } php_stream_from_zval_no_verify(intstream, &retval);