summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_compile.c3
-rw-r--r--Zend/zend_execute.h2
2 files changed, 3 insertions, 2 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 4061ccfa4b..8e7f185b78 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -320,7 +320,8 @@ void do_assign_ref(znode *result, znode *lvar, znode *rvar CLS_DC)
opline->result.u.var = get_temporary_variable(CG(active_op_array));
*result = opline->result;
} else {
- SET_UNUSED(opline->result);
+ /* SET_UNUSED(opline->result); */
+ opline->result.u.EA.type |= EXT_TYPE_UNUSED;
}
opline->op1 = *lvar;
opline->op2 = *rvar;
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h
index 0a85b843b0..8fcd5c0ea9 100644
--- a/Zend/zend_execute.h
+++ b/Zend/zend_execute.h
@@ -216,7 +216,7 @@ ZEND_API inline void zend_assign_to_variable_reference(znode *result, zval **var
(*variable_ptr_ptr)->is_ref = 1;
}
- if (result && (result->op_type != IS_UNUSED)) {
+ if (result && !(result->u.EA.type & EXT_TYPE_UNUSED)) {
Ts[result->u.var].var.ptr_ptr = variable_ptr_ptr;
SELECTIVE_PZVAL_LOCK(*variable_ptr_ptr, result);
AI_USE_PTR(Ts[result->u.var].var);