diff options
author | Zeev Suraski <zeev@php.net> | 2003-08-18 22:31:11 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2003-08-18 22:31:11 +0000 |
commit | 49c4866a4798716e40c6502dfb2edca7611edbfd (patch) | |
tree | f541f22b24cdcbdb41097f4efa9253ac767dbaa6 /Zend/zend_execute.c | |
parent | 0dba58c373b3e96cf2fd064cc08de7f298d60e5f (diff) | |
download | php-git-49c4866a4798716e40c6502dfb2edca7611edbfd.tar.gz |
- Improve tracking
- Fix several overloading issues
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r-- | Zend/zend_execute.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index aa6607d35c..584d979a42 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -2567,9 +2567,16 @@ int zend_do_fcall_common_helper(ZEND_OPCODE_HANDLER_ARGS) zend_error(E_ERROR, "Cannot call overloaded function for non-object"); } + if (EX(function_state).function->type == ZEND_OVERLOADED_FUNCTION_TEMPORARY) { + efree(EX(function_state).function->common.function_name); + } efree(EX(fbc)); + if (!return_value_used) { zval_ptr_dtor(&EX_T(EX(opline)->result.u.var).var.ptr); + } else { + EX_T(EX(opline)->result.u.var).var.ptr->is_ref = 0; + EX_T(EX(opline)->result.u.var).var.ptr->refcount = 1; } } |