array_init_size(return_value, arg_count);
for (i=0; i<arg_count; i++) {
- zval *element, *arg;
+ zval *element;
- arg = *((zval **) (p-(arg_count-i)));
- if (!Z_ISREF_P(arg)) {
- element = arg;
- Z_ADDREF_P(element);
- } else {
- ALLOC_ZVAL(element);
- INIT_PZVAL_COPY(element, arg);
- zval_copy_ctor(element);
- }
+ ALLOC_ZVAL(element);
+ *element = **((zval **) (p-(arg_count-i)));
+ zval_copy_ctor(element);
+ INIT_PZVAL(element);
zend_hash_next_index_insert(return_value->value.ht, &element, sizeof(zval *), NULL);
}
}