diff options
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r-- | Zend/zend_vm_execute.h | 144 |
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; } } |