summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_def.h
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2013-08-02 18:39:58 +0800
committerXinchen Hui <laruence@php.net>2013-08-02 18:39:58 +0800
commit78673d1badd39362dff15d4124d7df0cbcec862f (patch)
tree791d4f7b5e2d505fa0cdeb49dca1dd6c1e11dded /Zend/zend_vm_def.h
parentfbd01eaecf5685911166f406a14a118acf345acf (diff)
parent6f1a762fab8dc42b0d2190cb3cbf89da8e0903e5 (diff)
downloadphp-git-78673d1badd39362dff15d4124d7df0cbcec862f.tar.gz
Merge branch 'PHP-5.5'
Diffstat (limited to 'Zend/zend_vm_def.h')
-rw-r--r--Zend/zend_vm_def.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 6173e8bff9..ba5f31b1fb 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -2925,9 +2925,11 @@ ZEND_VM_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR|CV, ANY)
} else if (EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
zend_error(E_NOTICE, "Only variable references should be returned by reference");
if (EG(return_value_ptr_ptr)) {
- retval_ptr = *retval_ptr_ptr;
- *EG(return_value_ptr_ptr) = retval_ptr;
- Z_ADDREF_P(retval_ptr);
+ zval *ret;
+
+ ALLOC_ZVAL(ret);
+ INIT_PZVAL_COPY(ret, *retval_ptr_ptr);
+ *EG(return_value_ptr_ptr) = ret;
}
break;
}