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)
}
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;
}
}
}
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);
}
} /* }}} */
return;
}
}
- RETVAL_ZVAL(entry, 1, 0);
+ ZVAL_DEREF(entry);
+ ZVAL_COPY(return_value, entry);
}
/* }}} */
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;
}
}
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);
}
/* }}} */
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);*/
}
}
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);
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;
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;
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;
} /* }}} */
return;
}
- RETURN_ZVAL(value, 1, 0);
+ ZVAL_DEREF(value);
+ ZVAL_COPY(return_value, value);
}
/* }}} */
return;
}
- RETURN_ZVAL(value, 1, 0);
+ ZVAL_DEREF(value);
+ ZVAL_COPY(return_value, value);
}
/* }}} */
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;
}
} /* }}} */
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);
}
}
/* }}} */
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)
zval_ptr_dtor(&zindex);
if (value) {
- RETURN_ZVAL(value, 1, 0);
+ ZVAL_DEREF(value);
+ ZVAL_COPY(return_value, value);
+ } else {
+ RETURN_NULL();
}
- RETURN_NULL();
}
/* }}} */
return;
}
- RETVAL_ZVAL(value_out, 1, 0);
+ ZVAL_DEREF(value_out);
+ ZVAL_COPY(return_value, value_out);
zval_ptr_dtor(&value);
}
/* }}} */
return;
}
- RETURN_ZVAL(value_out, 1, 0);
+ ZVAL_DEREF(value_out);
+ ZVAL_COPY(return_value, value_out);
}
/* }}} */
return;
}
- RETURN_ZVAL(value, 1, 0);
+ ZVAL_DEREF(value);
+ ZVAL_COPY(return_value, value);
}
/* }}} */
if (!intern->heap->count || Z_ISUNDEF_P(element)) {
RETURN_NULL();
} else {
- RETURN_ZVAL(element, 1, 0);
+ ZVAL_DEREF(element);
+ ZVAL_COPY(return_value, element);
}
}
/* }}} */
RETURN_NULL();
}
- RETURN_ZVAL(data, 1, 0);
+ ZVAL_DEREF(data);
+ ZVAL_COPY(return_value, data);
}
}
/* }}} */
data = iterator->funcs->get_current_data(iterator);
if (data) {
- RETURN_ZVAL(data, 1, 0);
+ ZVAL_DEREF(data);
+ ZVAL_COPY(return_value, data);
}
} /* }}} */
{
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;
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()
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()
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();
}
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();
}
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()
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();
}
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) {
return;
}
- RETURN_ZVAL(value, 1, 0);
+ ZVAL_DEREF(value);
+ ZVAL_COPY(return_value, value);
}
/* }}} */
SPL_METHOD(CachingIterator, getCache)
{
spl_dual_it_object *intern;
+ zval *value;
if (zend_parse_parameters_none() == FAILURE) {
return;
return;
}
- RETURN_ZVAL(&intern->u.caching.zcache, 1, 0);
+ value = &intern->u.caching.zcache;
+ ZVAL_DEREF(value);
+ ZVAL_COPY(return_value, value);
}
/* }}} */
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();
}
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);
}
} /* }}} */
SPL_METHOD(AppendIterator, getArrayIterator)
{
spl_dual_it_object *intern;
+ zval *value;
if (zend_parse_parameters_none() == FAILURE) {
return;
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)
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);
}
} /* }}} */