diff options
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/zend_execute_API.c | 1 | ||||
-rw-r--r-- | Zend/zend_vm_def.h | 2 | ||||
-rw-r--r-- | Zend/zend_vm_execute.h | 2 |
3 files changed, 5 insertions, 0 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 78a041d6ce..a62b9292ec 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -796,6 +796,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache) / if (EXPECTED(!must_wrap)) { ZVAL_COPY(param, arg); } else { + Z_TRY_ADDREF_P(arg); ZVAL_NEW_REF(param, arg); } } diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index fa70bf9f96..233138cded 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -5153,6 +5153,7 @@ ZEND_VM_C_LABEL(send_array): if (EXPECTED(!must_wrap)) { ZVAL_COPY(param, arg); } else { + Z_TRY_ADDREF_P(arg); ZVAL_NEW_REF(param, arg); } ZEND_CALL_NUM_ARGS(EX(call))++; @@ -5186,6 +5187,7 @@ ZEND_VM_C_LABEL(send_array): if (EXPECTED(!must_wrap)) { ZVAL_COPY(param, arg); } else { + Z_TRY_ADDREF_P(arg); ZVAL_NEW_REF(param, arg); } ZEND_CALL_NUM_ARGS(EX(call))++; diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 02b0ff24d1..941c1c48f6 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -2097,6 +2097,7 @@ send_array: if (EXPECTED(!must_wrap)) { ZVAL_COPY(param, arg); } else { + Z_TRY_ADDREF_P(arg); ZVAL_NEW_REF(param, arg); } ZEND_CALL_NUM_ARGS(EX(call))++; @@ -2130,6 +2131,7 @@ send_array: if (EXPECTED(!must_wrap)) { ZVAL_COPY(param, arg); } else { + Z_TRY_ADDREF_P(arg); ZVAL_NEW_REF(param, arg); } ZEND_CALL_NUM_ARGS(EX(call))++; |