diff options
author | Zeev Suraski <zeev@php.net> | 2001-07-15 16:51:30 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2001-07-15 16:51:30 +0000 |
commit | 553505cb61d3992bc487b423a2bb0b2e001f9a72 (patch) | |
tree | dfc5dcbbecc8eb23262b0f0185eebfb47c556105 /Zend | |
parent | 0c491661973d103425215badb3623d8f1a3915f0 (diff) | |
download | php-git-553505cb61d3992bc487b423a2bb0b2e001f9a72.tar.gz |
Fix bug #11970
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/zend_execute.c | 9 |
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); |