summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2001-07-15 16:51:30 +0000
committerZeev Suraski <zeev@php.net>2001-07-15 16:51:30 +0000
commit553505cb61d3992bc487b423a2bb0b2e001f9a72 (patch)
treedfc5dcbbecc8eb23262b0f0185eebfb47c556105 /Zend
parent0c491661973d103425215badb3623d8f1a3915f0 (diff)
downloadphp-git-553505cb61d3992bc487b423a2bb0b2e001f9a72.tar.gz
Fix bug #11970
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_execute.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index b99f1acf12..668ab19fe4 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1650,9 +1650,14 @@ do_fcall_common:
retval_ptr_ptr = get_zval_ptr_ptr(&opline->op1, Ts, BP_VAR_W);
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval_ptr_ptr);
+ if (*retval_ptr_ptr==EG(uninitialized_zval_ptr)
+ || *retval_ptr_ptr==EG(error_zval_ptr)) {
+ ALLOC_INIT_ZVAL(*retval_ptr_ptr);
+ } else {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval_ptr_ptr);
+ (*retval_ptr_ptr)->refcount++;
+ }
- (*retval_ptr_ptr)->refcount++;
(*EG(return_value_ptr_ptr)) = (*retval_ptr_ptr);
} else {
retval_ptr = get_zval_ptr(&opline->op1, Ts, &EG(free_op1), BP_VAR_R);