diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 0b632b05e48..8faba97fc78 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -858,8 +858,10 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS zval_copy_ctor(&fci->params[i]); } else if (!Z_ISREF(fci->params[i])) { + if (Z_REFCOUNTED(fci->params[i])) { + Z_ADDREF(fci->params[i]); + } ZVAL_NEW_REF(&fci->params[i], &fci->params[i]); - Z_ADDREF(fci->params[i]); } else if (Z_REFCOUNTED(fci->params[i])) { Z_ADDREF(fci->params[i]); }