X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fcall.c;h=3b477943d4fa06b8380bed164da8c82a75e318d1;hb=4368a446f8afc498138c9336b5d3cd86625f09ad;hp=46a1dde419cf32876cb591e3aeb03dcdf8f49dff;hpb=9bcb1df0786a8193d65949c857baaba2f4296e84;p=m6w6%2Fext-psi diff --git a/src/call.c b/src/call.c index 46a1dde..3b47794 100644 --- a/src/call.c +++ b/src/call.c @@ -187,6 +187,7 @@ zval *psi_call_frame_sub_argument(struct psi_call_frame *frame, if (!inner_zval) { zval empty_zval; + SEPARATE_ZVAL(outer_zval); ZVAL_NULL(&empty_zval); inner_zval = zend_symtable_str_update(Z_ARRVAL_P(outer_zval), &inner_var->name[1], strlen(&inner_var->name[1]), @@ -282,9 +283,9 @@ ZEND_RESULT_CODE psi_call_frame_parse_args(struct psi_call_frame *frame, Z_PARAM_ARRAY_EX(tmp, _optional || iarg->var->reference, iarg->var->reference); } else if (PSI_T_OBJECT == iarg->type->type) { - Z_PARAM_PROLOGUE(0); + Z_PARAM_PROLOGUE(iarg->var->reference); } else if (PSI_T_MIXED == iarg->type->type) { - Z_PARAM_PROLOGUE(0); + Z_PARAM_PROLOGUE(iarg->var->reference); } else if (PSI_T_CALLABLE == iarg->type->type) { zend_fcall_info fci; zend_fcall_info_cache fcc;