ZVAL_LONG(&ztype, arg->type);
zend_call_method_with_2_params(arg->zconv, NULL, NULL, "converttostring", &rv, zparam, &ztype);
str = zval_get_string(&rv);
+ zval_ptr_dtor(&rv);
goto append_string;
} else {
+ again:
switch (Z_TYPE_P(zparam)) {
+ case IS_REFERENCE:
+ ZVAL_DEREF(zparam);
+ goto again;
+
case IS_NULL:
smart_str_appends(arg->buffer, "NULL");
break;
smart_str_appendc(arg.buffer, '{');
SEPARATE_ZVAL(zarr);
zend_hash_apply_with_argument(Z_ARRVAL_P(zarr), apply_to_param_from_array, &arg);
- zval_ptr_dtor(zarr);
smart_str_appendc(arg.buffer, '}');
break;
}
char tmp_str[64];
size_t tmp_len = 0;
+ again:
switch (Z_TYPE_P(zpp)) {
+ case IS_REFERENCE:
+ ZVAL_DEREF(zpp);
+ goto again;
+
case IS_NULL:
p->param.strings[index] = NULL;
return;
break;
case IS_ARRAY:
- str = array_param_to_string(p, &tmp, type);
+ str = array_param_to_string(p, zpp, type);
break;
case IS_OBJECT:
break;
}
/* no break */
-
default:
str = zval_get_string(zpp);
break;