]> granicus.if.org Git - php/commitdiff
- Improved. No ugly copy. (Tony)
authorFelipe Pena <felipe@php.net>
Mon, 3 Aug 2009 13:26:15 +0000 (13:26 +0000)
committerFelipe Pena <felipe@php.net>
Mon, 3 Aug 2009 13:26:15 +0000 (13:26 +0000)
ext/standard/streamsfuncs.c

index cc85c044312734402018ba321030c4a67314c62e..72498921ebd009a916705ab1b3e86852a1a0a751 100644 (file)
@@ -1735,32 +1735,24 @@ PHP_FUNCTION(stream_resolve_include_path)
 */
 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;
-               
-               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);
+               convert_to_string_ex(zstream);
                
-               zval_ptr_dtor(&copy_tmp);
+               wrapper = php_stream_locate_url_wrapper(Z_STRVAL_PP(zstream), NULL, 0 TSRMLS_CC);
        }
 
        if(!wrapper) {