]> granicus.if.org Git - php/commitdiff
Get rid of ZVAL_ZVAL() macro usages. Replace them with more clear and optimal equiale...
authorDmitry Stogov <dmitry@zend.com>
Tue, 30 Jun 2015 23:05:21 +0000 (02:05 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 30 Jun 2015 23:05:21 +0000 (02:05 +0300)
ext/curl/curl_file.c
ext/phar/stream.c
ext/spl/spl_array.c
ext/spl/spl_directory.c
ext/spl/spl_dllist.c
ext/spl/spl_fixedarray.c
ext/spl/spl_heap.c
ext/spl/spl_iterators.c
ext/spl/spl_observer.c

index f2937b4f0ddac5ec494c9abc425adab5e656c499..89b6cb22d2e80a77ac289db026468c985198c3d6 100644 (file)
@@ -78,7 +78,8 @@ static void curlfile_get_property(char *name, INTERNAL_FUNCTION_PARAMETERS)
                return;
        }
        res = zend_read_property(curl_CURLFile_class, getThis(), name, strlen(name), 1, &rv);
-       RETURN_ZVAL(res, 1, 0);
+       ZVAL_DEREF(res);
+       ZVAL_COPY(return_value, res);
 }
 
 static void curlfile_set_property(char *name, INTERNAL_FUNCTION_PARAMETERS)
index 9aa3c03a5d1ca6519f09a95c978a48ca05fae502..13177cb91793c682dc7f5ed5e7cf12f05a0fdbef 100644 (file)
@@ -226,7 +226,8 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
                                }
 
                                metadata = pzoption;
-                               ZVAL_ZVAL(&idata->internal_file->metadata, metadata, 1, 0);
+                               ZVAL_DEREF(metadata);
+                               ZVAL_COPY(&idata->internal_file->metadata, metadata);
                                idata->phar->is_modified = 1;
                        }
                }
index ce8a37bf36d26b5529432bf90a463928f8cbd446..2835876e33a37ec6ac662025886253affd246864 100644 (file)
@@ -710,7 +710,8 @@ SPL_METHOD(Array, offsetGet)
        }
        value = spl_array_read_dimension_ex(0, getThis(), index, BP_VAR_R, return_value);
        if (value != return_value) {
-               RETURN_ZVAL(value, 1, 0);
+               ZVAL_DEREF(value);
+               ZVAL_COPY(return_value, value);
        }
 } /* }}} */
 
@@ -1513,7 +1514,8 @@ SPL_METHOD(Array, current)
                        return;
                }
        }
-       RETVAL_ZVAL(entry, 1, 0);
+       ZVAL_DEREF(entry);
+       ZVAL_COPY(return_value, entry);
 }
 /* }}} */
 
@@ -1630,7 +1632,9 @@ SPL_METHOD(Array, getChildren)
                        return;
                }
                if (instanceof_function(Z_OBJCE_P(entry), Z_OBJCE_P(getThis()))) {
-                       RETURN_ZVAL(entry, 1, 0);
+                       ZVAL_OBJ(return_value, Z_OBJ_P(entry));
+                       Z_ADDREF_P(return_value);
+                       return;
                }
        }
 
index 34baf6333475a6741d171901f6f4c33f9595c8fa..a7d8a325636392f2bb96da3986c4fda51d50cd78 100644 (file)
@@ -786,7 +786,8 @@ SPL_METHOD(DirectoryIterator, current)
        if (zend_parse_parameters_none() == FAILURE) {
                return;
        }
-       RETURN_ZVAL(getThis(), 1, 0);
+       ZVAL_OBJ(return_value, Z_OBJ_P(getThis()));
+       Z_ADDREF_P(return_value);
 }
 /* }}} */
 
@@ -1080,7 +1081,8 @@ SPL_METHOD(FilesystemIterator, current)
                spl_filesystem_object_get_file_name(intern);
                spl_filesystem_object_create_type(0, intern, SPL_FS_INFO, NULL, return_value);
        } else {
-               RETURN_ZVAL(getThis(), 1, 0);
+               ZVAL_OBJ(return_value, Z_OBJ_P(getThis()));
+               Z_ADDREF_P(return_value);
                /*RETURN_STRING(intern->u.dir.entry.d_name, 1);*/
        }
 }
@@ -2123,6 +2125,7 @@ static int spl_filesystem_file_call(spl_filesystem_object *intern, zend_function
 static int spl_filesystem_file_read_csv(spl_filesystem_object *intern, char delimiter, char enclosure, char escape, zval *return_value) /* {{{ */
 {
        int ret = SUCCESS;
+       zval *value;
 
        do {
                ret = spl_filesystem_file_read(intern, 1);
@@ -2139,11 +2142,10 @@ static int spl_filesystem_file_read_csv(spl_filesystem_object *intern, char deli
 
                php_fgetcsv(intern->u.file.stream, delimiter, enclosure, escape, buf_len, buf, &intern->u.file.current_zval);
                if (return_value) {
-                       if (Z_TYPE_P(return_value) != IS_NULL) {
-                               zval_ptr_dtor(return_value);
-                               ZVAL_NULL(return_value);
-                       }
-                       ZVAL_ZVAL(return_value, &intern->u.file.current_zval, 1, 0);
+                       zval_ptr_dtor(return_value);
+                       value = &intern->u.file.current_zval;
+                       ZVAL_DEREF(value);
+                       ZVAL_COPY(return_value, value);
                }
        }
        return ret;
@@ -2177,7 +2179,10 @@ static int spl_filesystem_file_read_line_ex(zval * this_ptr, spl_filesystem_obje
                                intern->u.file.current_line = estrndup(Z_STRVAL(retval), Z_STRLEN(retval));
                                intern->u.file.current_line_len = Z_STRLEN(retval);
                        } else {
-                               ZVAL_ZVAL(&intern->u.file.current_zval, &retval, 1, 0);
+                               zval *value = &retval;
+
+                               ZVAL_DEREF(value);
+                               ZVAL_COPY(&intern->u.file.current_zval, value);
                        }
                        zval_ptr_dtor(&retval);
                        return SUCCESS;
@@ -2438,7 +2443,11 @@ SPL_METHOD(SplFileObject, current)
        if (intern->u.file.current_line && (!SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) || Z_ISUNDEF(intern->u.file.current_zval))) {
                RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len);
        } else if (!Z_ISUNDEF(intern->u.file.current_zval)) {
-               RETURN_ZVAL(&intern->u.file.current_zval, 1, 0);
+               zval *value = &intern->u.file.current_zval;
+
+               ZVAL_DEREF(value);
+               ZVAL_COPY(return_value, value);
+               return;
        }
        RETURN_FALSE;
 } /* }}} */
index dfdbfdab031efbc5a4e897bd9dbdb4aea777e3f3..a0d6bf887eb2e91aa7c8c12c33fca59f0ae58f0c 100644 (file)
@@ -654,7 +654,8 @@ SPL_METHOD(SplDoublyLinkedList, top)
                return;
        }
 
-       RETURN_ZVAL(value, 1, 0);
+       ZVAL_DEREF(value);
+       ZVAL_COPY(return_value, value);
 }
 /* }}} */
 
@@ -677,7 +678,8 @@ SPL_METHOD(SplDoublyLinkedList, bottom)
                return;
        }
 
-       RETURN_ZVAL(value, 1, 0);
+       ZVAL_DEREF(value);
+       ZVAL_COPY(return_value, value);
 }
 /* }}} */
 
@@ -795,10 +797,12 @@ SPL_METHOD(SplDoublyLinkedList, offsetGet)
        element = spl_ptr_llist_offset(intern->llist, index, intern->flags & SPL_DLLIST_IT_LIFO);
 
        if (element != NULL) {
-               RETURN_ZVAL(&element->data, 1, 0);
+               zval *value = &element->data;
+
+               ZVAL_DEREF(value);
+               ZVAL_COPY(return_value, value);
        } else {
                zend_throw_exception(spl_ce_OutOfRangeException, "Offset invalid", 0);
-               return;
        }
 } /* }}} */
 
@@ -1117,7 +1121,10 @@ SPL_METHOD(SplDoublyLinkedList, current)
        if (element == NULL || Z_ISUNDEF(element->data)) {
                RETURN_NULL();
        } else {
-               RETURN_ZVAL(&element->data, 1, 0);
+               zval *value = &element->data;
+
+               ZVAL_DEREF(value);
+               ZVAL_COPY(return_value, value);
        }
 }
 /* }}} */
index faac492b2a4f181fb1366828d24a3d2893aca19a..255412d89c48ed0038242053955b0a628f2e4957 100644 (file)
@@ -805,9 +805,11 @@ SPL_METHOD(SplFixedArray, offsetGet)
        value = spl_fixedarray_object_read_dimension_helper(intern, zindex);
 
        if (value) {
-               RETURN_ZVAL(value, 1, 0);
+               ZVAL_DEREF(value);
+               ZVAL_COPY(return_value, value);
+       } else {
+               RETURN_NULL();
        }
-       RETURN_NULL();
 } /* }}} */
 
 /* {{{ proto void SplFixedArray::offsetSet(mixed $index, mixed $newval)
@@ -1001,9 +1003,11 @@ SPL_METHOD(SplFixedArray, current)
        zval_ptr_dtor(&zindex);
 
        if (value) {
-               RETURN_ZVAL(value, 1, 0);
+               ZVAL_DEREF(value);
+               ZVAL_COPY(return_value, value);
+       } else {
+               RETURN_NULL();
        }
-       RETURN_NULL();
 }
 /* }}} */
 
index f790576b70e62811a6344cab9ef3730a6071cddd..ad520f948a7ed02bd495b03be3808af9b22f8670 100644 (file)
@@ -694,7 +694,8 @@ SPL_METHOD(SplPriorityQueue, extract)
                return;
        }
 
-       RETVAL_ZVAL(value_out, 1, 0);
+       ZVAL_DEREF(value_out);
+       ZVAL_COPY(return_value, value_out);
        zval_ptr_dtor(&value);
 }
 /* }}} */
@@ -731,7 +732,8 @@ SPL_METHOD(SplPriorityQueue, top)
                return;
        }
 
-       RETURN_ZVAL(value_out, 1, 0);
+       ZVAL_DEREF(value_out);
+       ZVAL_COPY(return_value, value_out);
 }
 /* }}} */
 
@@ -844,7 +846,8 @@ SPL_METHOD(SplHeap, top)
                return;
        }
 
-       RETURN_ZVAL(value, 1, 0);
+       ZVAL_DEREF(value);
+       ZVAL_COPY(return_value, value);
 }
 /* }}} */
 
@@ -1032,7 +1035,8 @@ SPL_METHOD(SplHeap, current)
        if (!intern->heap->count || Z_ISUNDEF_P(element)) {
                RETURN_NULL();
        } else {
-               RETURN_ZVAL(element, 1, 0);
+               ZVAL_DEREF(element);
+               ZVAL_COPY(return_value, element);
        }
 }
 /* }}} */
@@ -1058,7 +1062,8 @@ SPL_METHOD(SplPriorityQueue, current)
                        RETURN_NULL();
                }
 
-               RETURN_ZVAL(data, 1, 0);
+               ZVAL_DEREF(data);
+               ZVAL_COPY(return_value, data);
        }
 }
 /* }}} */
index c27d737b51aa1e32db871d6e319504200060f508..504065e7fddd2e0887d711c7f231421fc82aa08e 100644 (file)
@@ -663,7 +663,8 @@ SPL_METHOD(RecursiveIteratorIterator, current)
 
        data = iterator->funcs->get_current_data(iterator);
        if (data) {
-               RETURN_ZVAL(data, 1, 0);
+               ZVAL_DEREF(data);
+               ZVAL_COPY(return_value, data);
        }
 } /* }}} */
 
@@ -699,6 +700,7 @@ SPL_METHOD(RecursiveIteratorIterator, getSubIterator)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(getThis());
        zend_long  level = object->level;
+       zval *value;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "|l", &level) == FAILURE) {
                return;
@@ -713,7 +715,9 @@ SPL_METHOD(RecursiveIteratorIterator, getSubIterator)
                return;
        }
 
-       RETURN_ZVAL(&object->iterators[level].zobject, 1, 0);
+       value = &object->iterators[level].zobject;
+       ZVAL_DEREF(value);
+       ZVAL_COPY(return_value, value);
 } /* }}} */
 
 /* {{{ proto RecursiveIterator RecursiveIteratorIterator::getInnerIterator()
@@ -729,7 +733,8 @@ SPL_METHOD(RecursiveIteratorIterator, getInnerIterator)
 
        SPL_FETCH_SUB_ELEMENT_ADDR(zobject, object, zobject);
 
-       RETURN_ZVAL(zobject, 1, 0);
+       ZVAL_DEREF(zobject);
+       ZVAL_COPY(return_value, zobject);
 } /* }}} */
 
 /* {{{ proto RecursiveIterator RecursiveIteratorIterator::beginIteration()
@@ -1210,7 +1215,9 @@ SPL_METHOD(RecursiveTreeIterator, current)
         SPL_FETCH_SUB_ITERATOR(iterator, object);
                data = iterator->funcs->get_current_data(iterator);
                if (data) {
-                       RETURN_ZVAL(data, 1, 0);
+                       ZVAL_DEREF(data);
+                       ZVAL_COPY(return_value, data);
+                       return;
                } else {
                        RETURN_NULL();
                }
@@ -1625,7 +1632,10 @@ SPL_METHOD(dual_it, getInnerIterator)
        SPL_FETCH_AND_CHECK_DUAL_IT(intern, getThis());
 
        if (!Z_ISUNDEF(intern->inner.zobject)) {
-               RETVAL_ZVAL(&intern->inner.zobject, 1, 0);
+               zval *value = &intern->inner.zobject;
+
+               ZVAL_DEREF(value);
+               ZVAL_COPY(return_value, value);
        } else {
                RETURN_NULL();
        }
@@ -1772,9 +1782,13 @@ SPL_METHOD(dual_it, key)
        SPL_FETCH_AND_CHECK_DUAL_IT(intern, getThis());
 
        if (Z_TYPE(intern->current.key) != IS_UNDEF) {
-               RETURN_ZVAL(&intern->current.key, 1, 0);
+               zval *value = &intern->current.key;
+
+               ZVAL_DEREF(value);
+               ZVAL_COPY(return_value, value);
+       } else {
+               RETURN_NULL();
        }
-       RETURN_NULL();
 } /* }}} */
 
 /* {{{ proto mixed FilterIterator::current()
@@ -1796,7 +1810,10 @@ SPL_METHOD(dual_it, current)
        SPL_FETCH_AND_CHECK_DUAL_IT(intern, getThis());
 
        if (Z_TYPE(intern->current.data) != IS_UNDEF) {
-               RETVAL_ZVAL(&intern->current.data, 1, 0);
+               zval *value = &intern->current.data;
+
+               ZVAL_DEREF(value);
+               ZVAL_COPY(return_value, value);
        } else {
                RETURN_NULL();
        }
@@ -2629,14 +2646,13 @@ static inline void spl_caching_it_next(spl_dual_it_object *intern)
                intern->u.caching.flags |= CIT_VALID;
                /* Full cache ? */
                if (intern->u.caching.flags & CIT_FULL_CACHE) {
-                       zval zcacheval;
                        zval *key = &intern->current.key;
+                       zval *data = &intern->current.data;
 
-                       ZVAL_ZVAL(&zcacheval, &intern->current.data, 1, 0);
-
-                       array_set_zval_key(HASH_OF(&intern->u.caching.zcache), key, &zcacheval);
-
-                       zval_ptr_dtor(&zcacheval);
+                       ZVAL_DEREF(data);
+                       Z_TRY_ADDREF_P(data);
+                       array_set_zval_key(HASH_OF(&intern->u.caching.zcache), key, data);
+                       zval_ptr_dtor(data);
                }
                /* Recursion ? */
                if (intern->dit_type == DIT_RecursiveCachingIterator) {
@@ -2849,7 +2865,8 @@ SPL_METHOD(CachingIterator, offsetGet)
                return;
        }
 
-       RETURN_ZVAL(value, 1, 0);
+       ZVAL_DEREF(value);
+       ZVAL_COPY(return_value, value);
 }
 /* }}} */
 
@@ -2902,6 +2919,7 @@ SPL_METHOD(CachingIterator, offsetExists)
 SPL_METHOD(CachingIterator, getCache)
 {
        spl_dual_it_object   *intern;
+       zval *value;
 
        if (zend_parse_parameters_none() == FAILURE) {
                return;
@@ -2914,7 +2932,9 @@ SPL_METHOD(CachingIterator, getCache)
                return;
        }
 
-       RETURN_ZVAL(&intern->u.caching.zcache, 1, 0);
+       value = &intern->u.caching.zcache;
+       ZVAL_DEREF(value);
+       ZVAL_COPY(return_value, value);
 }
 /* }}} */
 
@@ -3062,7 +3082,10 @@ SPL_METHOD(RecursiveCachingIterator, getChildren)
        SPL_FETCH_AND_CHECK_DUAL_IT(intern, getThis());
 
        if (Z_TYPE(intern->u.caching.zchildren) != IS_UNDEF) {
-               RETURN_ZVAL(&intern->u.caching.zchildren, 1, 0);
+               zval *value = &intern->u.caching.zchildren;
+
+               ZVAL_DEREF(value);
+               ZVAL_COPY(return_value, value);
        } else {
                RETURN_NULL();
        }
@@ -3166,7 +3189,8 @@ SPL_METHOD(NoRewindIterator, current)
        SPL_FETCH_AND_CHECK_DUAL_IT(intern, getThis());
        data = intern->inner.iterator->funcs->get_current_data(intern->inner.iterator);
        if (data) {
-               RETURN_ZVAL(data, 1, 0);
+               ZVAL_DEREF(data);
+               ZVAL_COPY(return_value, data);
        }
 } /* }}} */
 
@@ -3439,6 +3463,7 @@ SPL_METHOD(AppendIterator, getIteratorIndex)
 SPL_METHOD(AppendIterator, getArrayIterator)
 {
        spl_dual_it_object   *intern;
+       zval *value;
 
        if (zend_parse_parameters_none() == FAILURE) {
                return;
@@ -3446,7 +3471,9 @@ SPL_METHOD(AppendIterator, getArrayIterator)
 
        SPL_FETCH_AND_CHECK_DUAL_IT(intern, getThis());
 
-       RETURN_ZVAL(&intern->u.append.zarrayit, 1, 0);
+       value = &intern->u.append.zarrayit;
+       ZVAL_DEREF(value);
+       ZVAL_COPY(return_value, value);
 } /* }}} */
 
 ZEND_BEGIN_ARG_INFO(arginfo_append_it_append, 0)
index 2f53946ffb9b84c9f87bc599dc62514d690189d7..5ad1c5d12f3db955d4d267ff6c18c46f5fb7682f 100644 (file)
@@ -485,7 +485,10 @@ SPL_METHOD(SplObjectStorage, offsetGet)
        if (!element) {
                zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0, "Object not found");
        } else {
-               RETURN_ZVAL(&element->inf, 1, 0);
+               zval *value = &element->inf;
+
+               ZVAL_DEREF(value);
+               ZVAL_COPY(return_value, value);
        }
 } /* }}} */