summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2003-07-30 17:49:27 +0000
committerZeev Suraski <zeev@php.net>2003-07-30 17:49:27 +0000
commit68fa4e50f8a3ba3fda5d661edeb453e5cf08ddc6 (patch)
treec32c079f047cde03208da42087b00b82f502884e /Zend
parentf41f62c2ff97d48244880e936720d80248fd246c (diff)
downloadphp-git-68fa4e50f8a3ba3fda5d661edeb453e5cf08ddc6.tar.gz
Get rid of an opcode
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_compile.c6
-rw-r--r--Zend/zend_compile.h8
-rw-r--r--Zend/zend_execute.c5
3 files changed, 12 insertions, 7 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index a3fea89248..2158f938db 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -2901,10 +2901,12 @@ void zend_do_unset(znode *variable TSRMLS_DC)
last_op->opcode = ZEND_UNSET_VAR;
break;
case ZEND_FETCH_DIM_UNSET:
- last_op->opcode = ZEND_UNSET_DIM;
+ last_op->opcode = ZEND_UNSET_DIM_OBJ;
+ last_op->extended_value = ZEND_UNSET_DIM;
break;
case ZEND_FETCH_OBJ_UNSET:
- last_op->opcode = ZEND_UNSET_OBJ;
+ last_op->opcode = ZEND_UNSET_DIM_OBJ;
+ last_op->extended_value = ZEND_UNSET_OBJ;
break;
}
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index aa5a9f501c..d28fa53e40 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -571,8 +571,7 @@ int zendlex(znode *zendlval TSRMLS_DC);
#define ZEND_INCLUDE_OR_EVAL 73
#define ZEND_UNSET_VAR 74
-#define ZEND_UNSET_DIM 75
-#define ZEND_UNSET_OBJ 76
+#define ZEND_UNSET_DIM_OBJ 75
#define ZEND_FE_RESET 77
#define ZEND_FE_FETCH 78
@@ -670,6 +669,11 @@ int zendlex(znode *zendlval TSRMLS_DC);
#define ZEND_FETCH_STATIC 2
#define ZEND_FETCH_STATIC_MEMBER 3
+
+/* obj/dim unsets */
+#define ZEND_UNSET_DIM 1
+#define ZEND_UNSET_OBJ 2
+
/* class fetches */
#define ZEND_FETCH_CLASS_DEFAULT 0
#define ZEND_FETCH_CLASS_SELF 1
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 34b6faf06f..890c838667 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -3444,7 +3444,7 @@ int zend_unset_dim_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
if (container) {
HashTable *ht;
- switch (EX(opline)->opcode) {
+ switch (EX(opline)->extended_value) {
case ZEND_UNSET_DIM:
switch (Z_TYPE_PP(container)) {
case IS_ARRAY:
@@ -4092,8 +4092,7 @@ void zend_init_opcodes_handlers()
zend_opcode_handlers[ZEND_INCLUDE_OR_EVAL] = zend_include_or_eval_handler;
zend_opcode_handlers[ZEND_UNSET_VAR] = zend_unset_var_handler;
- zend_opcode_handlers[ZEND_UNSET_DIM] = zend_unset_dim_obj_handler;
- zend_opcode_handlers[ZEND_UNSET_OBJ] = zend_unset_dim_obj_handler;
+ zend_opcode_handlers[ZEND_UNSET_DIM_OBJ] = zend_unset_dim_obj_handler;
zend_opcode_handlers[ZEND_FE_RESET] = zend_fe_reset_handler;
zend_opcode_handlers[ZEND_FE_FETCH] = zend_fe_fetch_handler;