summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2000-02-14 20:31:01 +0000
committerAndi Gutmans <andi@php.net>2000-02-14 20:31:01 +0000
commit7fa17e8e08ca4543a88e9b2467e56eb34c30341c (patch)
tree43df1f1b5a2611fff21b5dadbe979977393b0231 /Zend/zend_compile.c
parent95c77887471af4aaa8ecba445b7e69c0e46941e0 (diff)
downloadphp-git-7fa17e8e08ca4543a88e9b2467e56eb34c30341c.tar.gz
- Put in the infrastructure for the unset() fix. Right now it has the old
behavior but I just need time tomorrow to add the correct behavior.
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r--Zend/zend_compile.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 9019850c45..4030c8a679 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -576,6 +576,9 @@ void do_end_variable_parse(int type, int arg_offset CLS_DC)
opline->opcode += 9; /* 3+3+3 */
opline->extended_value = arg_offset;
break;
+ case BP_VAR_UNSET:
+ opline->opcode += 12; /* 3+3+3+3 */
+ break;
}
le = le->next;
}
@@ -1943,11 +1946,11 @@ void do_unset(znode *variable CLS_DC)
last_op = &CG(active_op_array)->opcodes[get_next_op_number(CG(active_op_array))-1];
switch (last_op->opcode) {
- case ZEND_FETCH_R:
+ case ZEND_FETCH_UNSET:
last_op->opcode = ZEND_UNSET_VAR;
break;
- case ZEND_FETCH_DIM_R:
- case ZEND_FETCH_OBJ_R:
+ case ZEND_FETCH_DIM_UNSET:
+ case ZEND_FETCH_OBJ_UNSET:
last_op->opcode = ZEND_UNSET_DIM_OBJ;
break;