summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.h
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r--Zend/zend_vm_execute.h144
1 files changed, 60 insertions, 84 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index d93270140d..7d16db6011 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -4528,8 +4528,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HA
ZVAL_UNDEF(&tmp);
if (IS_CONST != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -4587,13 +4586,11 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_CONST_HANDLER(ZEND_O
isset = 0;
}
} else {
- HashTable *target_symbol_table;
zval tmp, *varname = opline->op1.zv;
if (IS_CONST != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -4619,8 +4616,9 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_CONST_HANDLER(ZEND_O
isset = 0;
}
} else {
- target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
- if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
+ HashTable *target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
+ value = zend_hash_find_ind(target_symbol_table, Z_STR_P(varname));
+ if (!value || Z_ISUNDEF_P(value)) {
isset = 0;
}
}
@@ -6954,8 +6952,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HAND
ZVAL_UNDEF(&tmp);
if (IS_CONST != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -7013,13 +7010,11 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_VAR_HANDLER(ZEND_OPC
isset = 0;
}
} else {
- HashTable *target_symbol_table;
zval tmp, *varname = opline->op1.zv;
if (IS_CONST != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -7045,8 +7040,9 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_VAR_HANDLER(ZEND_OPC
isset = 0;
}
} else {
- target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
- if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
+ HashTable *target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
+ value = zend_hash_find_ind(target_symbol_table, Z_STR_P(varname));
+ if (!value || Z_ISUNDEF_P(value)) {
isset = 0;
}
}
@@ -7832,8 +7828,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_H
ZVAL_UNDEF(&tmp);
if (IS_CONST != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -7891,13 +7886,11 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_UNUSED_HANDLER(ZEND_
isset = 0;
}
} else {
- HashTable *target_symbol_table;
zval tmp, *varname = opline->op1.zv;
if (IS_CONST != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -7923,8 +7916,9 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_UNUSED_HANDLER(ZEND_
isset = 0;
}
} else {
- target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
- if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
+ HashTable *target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
+ value = zend_hash_find_ind(target_symbol_table, Z_STR_P(varname));
+ if (!value || Z_ISUNDEF_P(value)) {
isset = 0;
}
}
@@ -11252,8 +11246,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HAND
ZVAL_UNDEF(&tmp);
if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -11311,13 +11304,11 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPC
isset = 0;
}
} else {
- HashTable *target_symbol_table;
zend_free_op free_op1;
zval tmp, *varname = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -11343,8 +11334,9 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPC
isset = 0;
}
} else {
- target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
- if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
+ HashTable *target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
+ value = zend_hash_find_ind(target_symbol_table, Z_STR_P(varname));
+ if (!value || Z_ISUNDEF_P(value)) {
isset = 0;
}
}
@@ -13589,8 +13581,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLE
ZVAL_UNDEF(&tmp);
if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -13648,13 +13639,11 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCOD
isset = 0;
}
} else {
- HashTable *target_symbol_table;
zend_free_op free_op1;
zval tmp, *varname = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -13680,8 +13669,9 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCOD
isset = 0;
}
} else {
- target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
- if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
+ HashTable *target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
+ value = zend_hash_find_ind(target_symbol_table, Z_STR_P(varname));
+ if (!value || Z_ISUNDEF_P(value)) {
isset = 0;
}
}
@@ -14342,8 +14332,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HAN
ZVAL_UNDEF(&tmp);
if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -14401,13 +14390,11 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_UNUSED_HANDLER(ZEND_OP
isset = 0;
}
} else {
- HashTable *target_symbol_table;
zend_free_op free_op1;
zval tmp, *varname = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -14433,8 +14420,9 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_UNUSED_HANDLER(ZEND_OP
isset = 0;
}
} else {
- target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
- if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
+ HashTable *target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
+ value = zend_hash_find_ind(target_symbol_table, Z_STR_P(varname));
+ if (!value || Z_ISUNDEF_P(value)) {
isset = 0;
}
}
@@ -19184,8 +19172,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
ZVAL_UNDEF(&tmp);
if (IS_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -19361,13 +19348,11 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPC
isset = 0;
}
} else {
- HashTable *target_symbol_table;
zend_free_op free_op1;
zval tmp, *varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (IS_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -19393,8 +19378,9 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPC
isset = 0;
}
} else {
- target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
- if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
+ HashTable *target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
+ value = zend_hash_find_ind(target_symbol_table, Z_STR_P(varname));
+ if (!value || Z_ISUNDEF_P(value)) {
isset = 0;
}
}
@@ -23575,8 +23561,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
ZVAL_UNDEF(&tmp);
if (IS_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -23752,13 +23737,11 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
isset = 0;
}
} else {
- HashTable *target_symbol_table;
zend_free_op free_op1;
zval tmp, *varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (IS_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -23784,8 +23767,9 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
isset = 0;
}
} else {
- target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
- if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
+ HashTable *target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
+ value = zend_hash_find_ind(target_symbol_table, Z_STR_P(varname));
+ if (!value || Z_ISUNDEF_P(value)) {
isset = 0;
}
}
@@ -25035,8 +25019,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HAN
ZVAL_UNDEF(&tmp);
if (IS_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -25094,13 +25077,11 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OP
isset = 0;
}
} else {
- HashTable *target_symbol_table;
zend_free_op free_op1;
zval tmp, *varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (IS_VAR != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -25126,8 +25107,9 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OP
isset = 0;
}
} else {
- target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
- if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
+ HashTable *target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
+ value = zend_hash_find_ind(target_symbol_table, Z_STR_P(varname));
+ if (!value || Z_ISUNDEF_P(value)) {
isset = 0;
}
}
@@ -36359,8 +36341,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDL
ZVAL_UNDEF(&tmp);
if (IS_CV != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -36536,13 +36517,11 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_CONST_HANDLER(ZEND_OPCO
isset = 0;
}
} else {
- HashTable *target_symbol_table;
zval tmp, *varname = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
if (IS_CV != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -36568,8 +36547,9 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_CONST_HANDLER(ZEND_OPCO
isset = 0;
}
} else {
- target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
- if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
+ HashTable *target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
+ value = zend_hash_find_ind(target_symbol_table, Z_STR_P(varname));
+ if (!value || Z_ISUNDEF_P(value)) {
isset = 0;
}
}
@@ -40548,8 +40528,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER
ZVAL_UNDEF(&tmp);
if (IS_CV != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -40725,13 +40704,11 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE
isset = 0;
}
} else {
- HashTable *target_symbol_table;
zval tmp, *varname = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
if (IS_CV != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -40757,8 +40734,9 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE
isset = 0;
}
} else {
- target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
- if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
+ HashTable *target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
+ value = zend_hash_find_ind(target_symbol_table, Z_STR_P(varname));
+ if (!value || Z_ISUNDEF_P(value)) {
isset = 0;
}
}
@@ -41881,8 +41859,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HAND
ZVAL_UNDEF(&tmp);
if (IS_CV != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -41940,13 +41917,11 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPC
isset = 0;
}
} else {
- HashTable *target_symbol_table;
zval tmp, *varname = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
if (IS_CV != IS_CONST && Z_TYPE_P(varname) != IS_STRING) {
- ZVAL_DUP(&tmp, varname);
- convert_to_string(&tmp);
+ ZVAL_STR(&tmp, zval_get_string(varname));
varname = &tmp;
}
@@ -41972,8 +41947,9 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPC
isset = 0;
}
} else {
- target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
- if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
+ HashTable *target_symbol_table = zend_get_target_symbol_table(execute_data, opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
+ value = zend_hash_find_ind(target_symbol_table, Z_STR_P(varname));
+ if (!value || Z_ISUNDEF_P(value)) {
isset = 0;
}
}