int nodendx = 0;
int test = 0;
long cnt;
- zval tmp_zv, trim_zv;
+ zval tmp_zv, trim_zv, value_copy;
if (!member) {
/* This happens when the user did: $sxe[] = $value
case IS_DOUBLE:
case IS_NULL:
case IS_UNICODE:
+ if (value->refcount > 1) {
+ value_copy = *value;
+ zval_copy_ctor(&value_copy);
+ value = &value_copy;
+ }
convert_to_string(value);
break;
case IS_STRING:
if (pnewnode) {
*pnewnode = newnode;
}
+ if (value && value == &value_copy) {
+ zval_dtor(value);
+ }
}
/* }}} */