}
for (j = i + 1; j < stmt->param.var_cnt; j++) {
/* Oops, someone binding the same variable - clone */
- if (Z_TYPE(stmt->param.vars[j]) == Z_TYPE(stmt->param.vars[i]) &&
+ if (Z_ISREF(stmt->param.vars[j]) &&
Z_REFVAL(stmt->param.vars[j]) == Z_REFVAL(stmt->param.vars[i])) {
- SEPARATE_ZVAL(&stmt->param.vars[j]);
+ /*SEPARATE_ZVAL(&stmt->param.vars[j]);*/
+ Z_DELREF_P(&stmt->param.vars[j]);
+ ZVAL_COPY(&stmt->param.vars[j], Z_REFVAL(stmt->param.vars[j]));
break;
}
}