summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2000-02-16 16:00:02 +0000
committerAndi Gutmans <andi@php.net>2000-02-16 16:00:02 +0000
commit9b840c5f591d09b42141e1d795faae76b49832c5 (patch)
treee8ff6b579bd8c1a2cab52b33c92db13a3c68a05c /Zend/zend_execute.c
parentfc74c302be826995852e3b6c186c507490cbe6a9 (diff)
downloadphp-git-9b840c5f591d09b42141e1d795faae76b49832c5.tar.gz
- Hopefully fix Thies' bug report.
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 700bf405c9..fd3715fc00 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -74,8 +74,8 @@ static void zend_extension_fcall_end_handler(zend_extension *extension, zend_op_
#define SEPARATE_ON_READ_OBJECT(obj, _type) \
-if ((obj) && ((_type) == BP_VAR_R) && ((*(obj))->type == IS_OBJECT) && (!(*(obj))->is_ref)) { \
- SEPARATE_ZVAL((obj)); \
+if ((obj) && ((_type) == BP_VAR_R) && ((*(obj))->type == IS_OBJECT)) { \
+ SEPARATE_ZVAL_IF_NOT_REF((obj)); \
(*(obj))->is_ref = 1; \
}
@@ -734,8 +734,8 @@ static inline void zend_fetch_dimension_address(znode *result, znode *op1, znode
convert_to_long(&tmp);
offset = &tmp;
}
- if (!container->is_ref && type!=BP_VAR_R && type!=BP_VAR_IS) {
- SEPARATE_ZVAL(container_ptr);
+ if (type!=BP_VAR_R && type!=BP_VAR_IS) {
+ SEPARATE_ZVAL_IF_NOT_REF(container_ptr);
}
container = *container_ptr;
Ts[result->u.var].EA.str = container;
@@ -1249,7 +1249,7 @@ binary_assign_op_addr: {
case ZEND_FETCH_UNSET:
zend_fetch_var_address(&opline->result, &opline->op1, &opline->op2, Ts, BP_VAR_R ELS_CC);
if (Ts[opline->result.u.var].var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL(Ts[opline->result.u.var].var.ptr_ptr);
+ SEPARATE_ZVAL_IF_NOT_REF(Ts[opline->result.u.var].var.ptr_ptr);
}
NEXT_OPCODE();
case ZEND_FETCH_IS:
@@ -1291,7 +1291,7 @@ binary_assign_op_addr: {
*/
zend_fetch_dimension_address(&opline->result, &opline->op1, &opline->op2, Ts, BP_VAR_R ELS_CC);
if (Ts[opline->result.u.var].var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL(Ts[opline->result.u.var].var.ptr_ptr);
+ SEPARATE_ZVAL_IF_NOT_REF(Ts[opline->result.u.var].var.ptr_ptr);
}
NEXT_OPCODE();
case ZEND_FETCH_OBJ_R:
@@ -1320,7 +1320,7 @@ binary_assign_op_addr: {
case ZEND_FETCH_OBJ_UNSET:
zend_fetch_property_address(&opline->result, &opline->op1, &opline->op2, Ts, BP_VAR_R ELS_CC);
if (Ts[opline->result.u.var].var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL(Ts[opline->result.u.var].var.ptr_ptr);
+ SEPARATE_ZVAL_IF_NOT_REF(Ts[opline->result.u.var].var.ptr_ptr);
}
NEXT_OPCODE();
case ZEND_FETCH_DIM_TMP_VAR: