SAVE_OPLINE();
val = opline->op1.zv;
- if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- ret = Z_LVAL_P(val);
+ if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ ret = (Z_TYPE_P(val) == IS_TRUE);
} else {
ret = i_zend_is_true(val TSRMLS_CC);
SAVE_OPLINE();
val = opline->op1.zv;
- if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- ret = Z_LVAL_P(val);
+ if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ ret = (Z_TYPE_P(val) == IS_TRUE);
} else {
ret = i_zend_is_true(val TSRMLS_CC);
SAVE_OPLINE();
val = opline->op1.zv;
- if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- retval = Z_LVAL_P(val);
+ if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ retval = (Z_TYPE_P(val) == IS_TRUE);
} else {
retval = i_zend_is_true(val TSRMLS_CC);
SAVE_OPLINE();
val = opline->op1.zv;
- if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- retval = Z_LVAL_P(val);
+ if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ retval = (Z_TYPE_P(val) == IS_TRUE);
} else {
retval = i_zend_is_true(val TSRMLS_CC);
SAVE_OPLINE();
val = opline->op1.zv;
- if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- retval = Z_LVAL_P(val);
+ if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ retval = (Z_TYPE_P(val) == IS_TRUE);
} else {
retval = i_zend_is_true(val TSRMLS_CC);
ZVAL_NULL(result);
break;
- case IS_BOOL:
+ case _IS_BOOL:
ZVAL_BOOL(result, zend_is_true(expr TSRMLS_CC));
break;
case IS_LONG:
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
opline->op1.zv,
opline->op2.zv TSRMLS_CC);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
opline->op1.zv,
opline->op2.zv TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
opline->op1.zv,
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
opline->op1.zv,
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
opline->op1.zv,
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
opline->op1.zv,
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- opline->op1.zv,
- opline->op2.zv TSRMLS_CC));
+ fast_equal_function(result,
+ opline->op1.zv,
+ opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
zend_free_op free_op2;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
opline->op1.zv,
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
opline->op1.zv,
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
opline->op1.zv,
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
opline->op1.zv,
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
opline->op1.zv,
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
opline->op1.zv,
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- opline->op1.zv,
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ fast_equal_function(result,
+ opline->op1.zv,
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
zend_free_op free_op2;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
opline->op1.zv,
_get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
opline->op1.zv,
_get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
opline->op1.zv,
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
opline->op1.zv,
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
opline->op1.zv,
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
opline->op1.zv,
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- opline->op1.zv,
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ fast_equal_function(result,
+ opline->op1.zv,
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
opline->op1.zv,
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
opline->op1.zv,
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
opline->op1.zv,
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
opline->op1.zv,
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
opline->op1.zv,
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
opline->op1.zv,
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- opline->op1.zv,
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ fast_equal_function(result,
+ opline->op1.zv,
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
SAVE_OPLINE();
val = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
- if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- ret = Z_LVAL_P(val);
+ if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ ret = (Z_TYPE_P(val) == IS_TRUE);
} else {
ret = i_zend_is_true(val TSRMLS_CC);
zval_dtor(free_op1.var);
SAVE_OPLINE();
val = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
- if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- ret = Z_LVAL_P(val);
+ if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ ret = (Z_TYPE_P(val) == IS_TRUE);
} else {
ret = i_zend_is_true(val TSRMLS_CC);
zval_dtor(free_op1.var);
SAVE_OPLINE();
val = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
- if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- retval = Z_LVAL_P(val);
+ if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ retval = (Z_TYPE_P(val) == IS_TRUE);
} else {
retval = i_zend_is_true(val TSRMLS_CC);
zval_dtor(free_op1.var);
SAVE_OPLINE();
val = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
- if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- retval = Z_LVAL_P(val);
+ if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ retval = (Z_TYPE_P(val) == IS_TRUE);
} else {
retval = i_zend_is_true(val TSRMLS_CC);
zval_dtor(free_op1.var);
SAVE_OPLINE();
val = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
- if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- retval = Z_LVAL_P(val);
+ if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ retval = (Z_TYPE_P(val) == IS_TRUE);
} else {
retval = i_zend_is_true(val TSRMLS_CC);
zval_dtor(free_op1.var);
ZVAL_NULL(result);
break;
- case IS_BOOL:
+ case _IS_BOOL:
ZVAL_BOOL(result, zend_is_true(expr TSRMLS_CC));
break;
case IS_LONG:
zend_free_op free_op1;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
zval_dtor(free_op1.var);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ fast_equal_function(result,
+ _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_dtor(free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ fast_equal_function(result,
+ _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_dtor(free_op1.var);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ fast_equal_function(result,
+ _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
zend_free_op free_op1;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ fast_equal_function(result,
+ _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
SAVE_OPLINE();
val = _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
- if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- ret = Z_LVAL_P(val);
+ if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ ret = (Z_TYPE_P(val) == IS_TRUE);
} else {
ret = i_zend_is_true(val TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
SAVE_OPLINE();
val = _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
- if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- ret = Z_LVAL_P(val);
+ if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ ret = (Z_TYPE_P(val) == IS_TRUE);
} else {
ret = i_zend_is_true(val TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
SAVE_OPLINE();
val = _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
- if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- retval = Z_LVAL_P(val);
+ if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ retval = (Z_TYPE_P(val) == IS_TRUE);
} else {
retval = i_zend_is_true(val TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
SAVE_OPLINE();
val = _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
- if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- retval = Z_LVAL_P(val);
+ if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ retval = (Z_TYPE_P(val) == IS_TRUE);
} else {
retval = i_zend_is_true(val TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
SAVE_OPLINE();
val = _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
- if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- retval = Z_LVAL_P(val);
+ if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ retval = (Z_TYPE_P(val) == IS_TRUE);
} else {
retval = i_zend_is_true(val TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
ZVAL_NULL(result);
break;
- case IS_BOOL:
+ case _IS_BOOL:
ZVAL_BOOL(result, zend_is_true(expr TSRMLS_CC));
break;
case IS_LONG:
zend_free_op free_op1;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
_get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
_get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_ptr_dtor_nogc(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ fast_equal_function(result,
+ _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
zend_hash_index_del(ht, hval);
break;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
+num_index_dim:
zend_hash_index_del(ht, hval);
break;
case IS_STRING:
if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (IS_CONST != IS_CONST) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto numeric_index_dim);
}
if (ht == &EG(symbol_table).ht) {
zend_delete_global_variable(Z_STR_P(offset) TSRMLS_CC);
zval_ptr_dtor(offset);
}
break;
-num_index_dim:
+numeric_index_dim:
zend_hash_index_del(ht, hval);
if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
zval_ptr_dtor(offset);
case IS_NULL:
zend_hash_del(ht, STR_EMPTY_ALLOC());
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_dim;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index_dim;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_dim;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto offset_again;
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_prop;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
num_index_prop:
str = STR_EMPTY_ALLOC();
goto str_index_prop;
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_TRUE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_prop;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto isset_again;
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
_get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
_get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_ptr_dtor_nogc(free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ fast_equal_function(result,
+ _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
zend_hash_index_del(ht, hval);
break;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
+num_index_dim:
zend_hash_index_del(ht, hval);
break;
case IS_STRING:
if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (IS_TMP_VAR != IS_CONST) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto numeric_index_dim);
}
if (ht == &EG(symbol_table).ht) {
zend_delete_global_variable(Z_STR_P(offset) TSRMLS_CC);
zval_ptr_dtor(offset);
}
break;
-num_index_dim:
+numeric_index_dim:
zend_hash_index_del(ht, hval);
if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
zval_ptr_dtor(offset);
case IS_NULL:
zend_hash_del(ht, STR_EMPTY_ALLOC());
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_dim;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index_dim;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_dim;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto offset_again;
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_prop;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
num_index_prop:
str = STR_EMPTY_ALLOC();
goto str_index_prop;
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_TRUE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_prop;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto isset_again;
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
_get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
_get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_ptr_dtor_nogc(free_op1.var);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ fast_equal_function(result,
+ _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
zend_hash_index_del(ht, hval);
break;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
+num_index_dim:
zend_hash_index_del(ht, hval);
break;
case IS_STRING:
if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (IS_VAR != IS_CONST) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto numeric_index_dim);
}
if (ht == &EG(symbol_table).ht) {
zend_delete_global_variable(Z_STR_P(offset) TSRMLS_CC);
zval_ptr_dtor(offset);
}
break;
-num_index_dim:
+numeric_index_dim:
zend_hash_index_del(ht, hval);
if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
zval_ptr_dtor(offset);
case IS_NULL:
zend_hash_del(ht, STR_EMPTY_ALLOC());
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_dim;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index_dim;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_dim;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto offset_again;
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_prop;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
num_index_prop:
str = STR_EMPTY_ALLOC();
goto str_index_prop;
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_TRUE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_prop;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto isset_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
zend_free_op free_op1;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
_get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
_get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_ptr_dtor_nogc(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op1.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ fast_equal_function(result,
+ _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
zend_hash_index_del(ht, hval);
break;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
+num_index_dim:
zend_hash_index_del(ht, hval);
break;
case IS_STRING:
if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (IS_CV != IS_CONST) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto numeric_index_dim);
}
if (ht == &EG(symbol_table).ht) {
zend_delete_global_variable(Z_STR_P(offset) TSRMLS_CC);
zval_ptr_dtor(offset);
}
break;
-num_index_dim:
+numeric_index_dim:
zend_hash_index_del(ht, hval);
if (IS_CV == IS_CV || IS_CV == IS_VAR) {
zval_ptr_dtor(offset);
case IS_NULL:
zend_hash_del(ht, STR_EMPTY_ALLOC());
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_dim;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index_dim;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_dim;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto offset_again;
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_prop;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
num_index_prop:
str = STR_EMPTY_ALLOC();
goto str_index_prop;
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_TRUE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_prop;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto isset_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
zend_hash_index_del(ht, hval);
break;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
+num_index_dim:
zend_hash_index_del(ht, hval);
break;
case IS_STRING:
if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (IS_CONST != IS_CONST) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto numeric_index_dim);
}
if (ht == &EG(symbol_table).ht) {
zend_delete_global_variable(Z_STR_P(offset) TSRMLS_CC);
zval_ptr_dtor(offset);
}
break;
-num_index_dim:
+numeric_index_dim:
zend_hash_index_del(ht, hval);
if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
zval_ptr_dtor(offset);
case IS_NULL:
zend_hash_del(ht, STR_EMPTY_ALLOC());
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_dim;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index_dim;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_dim;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto offset_again;
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_prop;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
num_index_prop:
str = STR_EMPTY_ALLOC();
goto str_index_prop;
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_TRUE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_prop;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto isset_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
zend_hash_index_del(ht, hval);
break;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
+num_index_dim:
zend_hash_index_del(ht, hval);
break;
case IS_STRING:
if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (IS_TMP_VAR != IS_CONST) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto numeric_index_dim);
}
if (ht == &EG(symbol_table).ht) {
zend_delete_global_variable(Z_STR_P(offset) TSRMLS_CC);
zval_ptr_dtor(offset);
}
break;
-num_index_dim:
+numeric_index_dim:
zend_hash_index_del(ht, hval);
if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
zval_ptr_dtor(offset);
case IS_NULL:
zend_hash_del(ht, STR_EMPTY_ALLOC());
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_dim;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index_dim;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_dim;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto offset_again;
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_prop;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
num_index_prop:
str = STR_EMPTY_ALLOC();
goto str_index_prop;
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_TRUE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_prop;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto isset_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
zend_hash_index_del(ht, hval);
break;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
+num_index_dim:
zend_hash_index_del(ht, hval);
break;
case IS_STRING:
if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (IS_VAR != IS_CONST) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto numeric_index_dim);
}
if (ht == &EG(symbol_table).ht) {
zend_delete_global_variable(Z_STR_P(offset) TSRMLS_CC);
zval_ptr_dtor(offset);
}
break;
-num_index_dim:
+numeric_index_dim:
zend_hash_index_del(ht, hval);
if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
zval_ptr_dtor(offset);
case IS_NULL:
zend_hash_del(ht, STR_EMPTY_ALLOC());
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_dim;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index_dim;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_dim;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto offset_again;
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_prop;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
num_index_prop:
str = STR_EMPTY_ALLOC();
goto str_index_prop;
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_TRUE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_prop;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto isset_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
zend_hash_index_del(ht, hval);
break;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
+num_index_dim:
zend_hash_index_del(ht, hval);
break;
case IS_STRING:
if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (IS_CV != IS_CONST) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto numeric_index_dim);
}
if (ht == &EG(symbol_table).ht) {
zend_delete_global_variable(Z_STR_P(offset) TSRMLS_CC);
zval_ptr_dtor(offset);
}
break;
-num_index_dim:
+numeric_index_dim:
zend_hash_index_del(ht, hval);
if (IS_CV == IS_CV || IS_CV == IS_VAR) {
zval_ptr_dtor(offset);
case IS_NULL:
zend_hash_del(ht, STR_EMPTY_ALLOC());
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_dim;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index_dim;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_dim;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto offset_again;
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_prop;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
num_index_prop:
str = STR_EMPTY_ALLOC();
goto str_index_prop;
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_TRUE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_prop;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto isset_again;
SAVE_OPLINE();
val = _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
- if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- ret = Z_LVAL_P(val);
+ if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ ret = (Z_TYPE_P(val) == IS_TRUE);
} else {
ret = i_zend_is_true(val TSRMLS_CC);
SAVE_OPLINE();
val = _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
- if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- ret = Z_LVAL_P(val);
+ if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ ret = (Z_TYPE_P(val) == IS_TRUE);
} else {
ret = i_zend_is_true(val TSRMLS_CC);
SAVE_OPLINE();
val = _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
- if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- retval = Z_LVAL_P(val);
+ if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ retval = (Z_TYPE_P(val) == IS_TRUE);
} else {
retval = i_zend_is_true(val TSRMLS_CC);
SAVE_OPLINE();
val = _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
- if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- retval = Z_LVAL_P(val);
+ if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ retval = (Z_TYPE_P(val) == IS_TRUE);
} else {
retval = i_zend_is_true(val TSRMLS_CC);
SAVE_OPLINE();
val = _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
- if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
- retval = Z_LVAL_P(val);
+ if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
+ retval = (Z_TYPE_P(val) == IS_TRUE);
} else {
retval = i_zend_is_true(val TSRMLS_CC);
ZVAL_NULL(result);
break;
- case IS_BOOL:
+ case _IS_BOOL:
ZVAL_BOOL(result, zend_is_true(expr TSRMLS_CC));
break;
case IS_LONG:
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- opline->op2.zv TSRMLS_CC));
+ fast_equal_function(result,
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
+ opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
zend_hash_index_del(ht, hval);
break;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
+num_index_dim:
zend_hash_index_del(ht, hval);
break;
case IS_STRING:
if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (IS_CONST != IS_CONST) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto numeric_index_dim);
}
if (ht == &EG(symbol_table).ht) {
zend_delete_global_variable(Z_STR_P(offset) TSRMLS_CC);
zval_ptr_dtor(offset);
}
break;
-num_index_dim:
+numeric_index_dim:
zend_hash_index_del(ht, hval);
if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
zval_ptr_dtor(offset);
case IS_NULL:
zend_hash_del(ht, STR_EMPTY_ALLOC());
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_dim;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index_dim;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_dim;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto offset_again;
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_prop;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
num_index_prop:
str = STR_EMPTY_ALLOC();
goto str_index_prop;
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_TRUE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_prop;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto isset_again;
zend_free_op free_op2;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ fast_equal_function(result,
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
zend_hash_index_del(ht, hval);
break;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
+num_index_dim:
zend_hash_index_del(ht, hval);
break;
case IS_STRING:
if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (IS_TMP_VAR != IS_CONST) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto numeric_index_dim);
}
if (ht == &EG(symbol_table).ht) {
zend_delete_global_variable(Z_STR_P(offset) TSRMLS_CC);
zval_ptr_dtor(offset);
}
break;
-num_index_dim:
+numeric_index_dim:
zend_hash_index_del(ht, hval);
if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
zval_ptr_dtor(offset);
case IS_NULL:
zend_hash_del(ht, STR_EMPTY_ALLOC());
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_dim;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index_dim;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_dim;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto offset_again;
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_prop;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
num_index_prop:
str = STR_EMPTY_ALLOC();
goto str_index_prop;
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_TRUE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_prop;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto isset_again;
zend_free_op free_op2;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
+ fast_equal_function(result,
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
+ _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
CHECK_EXCEPTION();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
zend_hash_index_del(ht, hval);
break;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
+num_index_dim:
zend_hash_index_del(ht, hval);
break;
case IS_STRING:
if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (IS_VAR != IS_CONST) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto numeric_index_dim);
}
if (ht == &EG(symbol_table).ht) {
zend_delete_global_variable(Z_STR_P(offset) TSRMLS_CC);
zval_ptr_dtor(offset);
}
break;
-num_index_dim:
+numeric_index_dim:
zend_hash_index_del(ht, hval);
if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
zval_ptr_dtor(offset);
case IS_NULL:
zend_hash_del(ht, STR_EMPTY_ALLOC());
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_dim;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index_dim;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_dim;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto offset_again;
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_prop;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
num_index_prop:
str = STR_EMPTY_ALLOC();
goto str_index_prop;
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_TRUE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_prop;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto isset_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
SAVE_OPLINE();
- is_identical_function(EX_VAR(opline->result.var),
+ fast_is_identical_function(EX_VAR(opline->result.var),
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- is_identical_function(result,
+ fast_is_not_identical_function(result,
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- Z_LVAL_P(result) = !Z_LVAL_P(result);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
+ fast_equal_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_not_equal_function(result,
+ fast_not_equal_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_function(result,
+ fast_is_smaller_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
+ fast_is_smaller_or_equal_function(result,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
zval *result = EX_VAR(opline->result.var);
SAVE_OPLINE();
- ZVAL_BOOL(result, fast_equal_function(result,
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
- _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
+ fast_equal_function(result,
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
+ _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index;
case IS_LONG:
- case IS_BOOL:
hval = Z_LVAL_P(offset);
num_index:
zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr);
case IS_NULL:
str = STR_EMPTY_ALLOC();
goto str_index;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto add_again;
hval = zend_dval_to_lval(Z_DVAL_P(offset));
zend_hash_index_del(ht, hval);
break;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
+num_index_dim:
zend_hash_index_del(ht, hval);
break;
case IS_STRING:
if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (IS_CV != IS_CONST) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_dim);
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto numeric_index_dim);
}
if (ht == &EG(symbol_table).ht) {
zend_delete_global_variable(Z_STR_P(offset) TSRMLS_CC);
zval_ptr_dtor(offset);
}
break;
-num_index_dim:
+numeric_index_dim:
zend_hash_index_del(ht, hval);
if (IS_CV == IS_CV || IS_CV == IS_VAR) {
zval_ptr_dtor(offset);
case IS_NULL:
zend_hash_del(ht, STR_EMPTY_ALLOC());
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_dim;
+ case IS_TRUE:
+ hval = 1;
+ goto num_index_dim;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_dim;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto offset_again;
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_prop;
- case IS_RESOURCE:
- case IS_BOOL:
case IS_LONG:
hval = Z_LVAL_P(offset);
num_index_prop:
str = STR_EMPTY_ALLOC();
goto str_index_prop;
break;
+ case IS_FALSE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_TRUE:
+ hval = 0;
+ goto num_index_prop;
+ case IS_RESOURCE:
+ hval = Z_RES_HANDLE_P(offset);
+ goto num_index_prop;
case IS_REFERENCE:
offset = Z_REFVAL_P(offset);
goto isset_again;