offset = EX_CONSTANT(opline->op2);
-isset_dim_obj_again:
if (IS_CONST != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- HashTable *ht = Z_ARRVAL_P(container);
+ HashTable *ht;
zval *value;
zend_string *str;
+isset_dim_obj_array:
+ ht = Z_ARRVAL_P(container);
isset_again:
if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) {
str = Z_STR_P(offset);
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
result = (value == NULL || !i_zend_is_true(value));
}
- } else if (IS_CONST == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ goto isset_dim_obj_exit;
+ } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
+ goto isset_dim_obj_array;
+ }
+ }
+ if (IS_CONST == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
if (EXPECTED(Z_OBJ_HT_P(container)->has_dimension)) {
result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISSET) == 0);
} else {
if ((opline->extended_value & ZEND_ISSET) == 0) {
result = !result;
}
- } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- goto isset_dim_obj_again;
} else {
result = ((opline->extended_value & ZEND_ISSET) == 0);
}
+isset_dim_obj_exit:
+
ZEND_VM_SMART_BRANCH(result, 1);
ZVAL_BOOL(EX_VAR(opline->result.var), result);
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
-isset_dim_obj_again:
if (IS_CONST != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- HashTable *ht = Z_ARRVAL_P(container);
+ HashTable *ht;
zval *value;
zend_string *str;
+isset_dim_obj_array:
+ ht = Z_ARRVAL_P(container);
isset_again:
if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) {
str = Z_STR_P(offset);
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
result = (value == NULL || !i_zend_is_true(value));
}
- } else if (IS_CONST == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ goto isset_dim_obj_exit;
+ } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
+ goto isset_dim_obj_array;
+ }
+ }
+ if (IS_CONST == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
if (EXPECTED(Z_OBJ_HT_P(container)->has_dimension)) {
result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISSET) == 0);
} else {
if ((opline->extended_value & ZEND_ISSET) == 0) {
result = !result;
}
- } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- goto isset_dim_obj_again;
} else {
result = ((opline->extended_value & ZEND_ISSET) == 0);
}
+isset_dim_obj_exit:
+
ZEND_VM_SMART_BRANCH(result, 1);
ZVAL_BOOL(EX_VAR(opline->result.var), result);
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
-isset_dim_obj_again:
if (IS_CONST != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- HashTable *ht = Z_ARRVAL_P(container);
+ HashTable *ht;
zval *value;
zend_string *str;
+isset_dim_obj_array:
+ ht = Z_ARRVAL_P(container);
isset_again:
if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) {
str = Z_STR_P(offset);
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
result = (value == NULL || !i_zend_is_true(value));
}
- } else if (IS_CONST == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ goto isset_dim_obj_exit;
+ } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
+ goto isset_dim_obj_array;
+ }
+ }
+ if (IS_CONST == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
if (EXPECTED(Z_OBJ_HT_P(container)->has_dimension)) {
result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISSET) == 0);
} else {
if ((opline->extended_value & ZEND_ISSET) == 0) {
result = !result;
}
- } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- goto isset_dim_obj_again;
} else {
result = ((opline->extended_value & ZEND_ISSET) == 0);
}
+isset_dim_obj_exit:
zval_ptr_dtor_nogc(free_op2);
ZEND_VM_SMART_BRANCH(result, 1);
offset = EX_CONSTANT(opline->op2);
-isset_dim_obj_again:
if (IS_UNUSED != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- HashTable *ht = Z_ARRVAL_P(container);
+ HashTable *ht;
zval *value;
zend_string *str;
+isset_dim_obj_array:
+ ht = Z_ARRVAL_P(container);
isset_again:
if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) {
str = Z_STR_P(offset);
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
result = (value == NULL || !i_zend_is_true(value));
}
- } else if (IS_UNUSED == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ goto isset_dim_obj_exit;
+ } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
+ goto isset_dim_obj_array;
+ }
+ }
+ if (IS_UNUSED == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
if (EXPECTED(Z_OBJ_HT_P(container)->has_dimension)) {
result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISSET) == 0);
} else {
if ((opline->extended_value & ZEND_ISSET) == 0) {
result = !result;
}
- } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- goto isset_dim_obj_again;
} else {
result = ((opline->extended_value & ZEND_ISSET) == 0);
}
+isset_dim_obj_exit:
+
ZEND_VM_SMART_BRANCH(result, 1);
ZVAL_BOOL(EX_VAR(opline->result.var), result);
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
-isset_dim_obj_again:
if (IS_UNUSED != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- HashTable *ht = Z_ARRVAL_P(container);
+ HashTable *ht;
zval *value;
zend_string *str;
+isset_dim_obj_array:
+ ht = Z_ARRVAL_P(container);
isset_again:
if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) {
str = Z_STR_P(offset);
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
result = (value == NULL || !i_zend_is_true(value));
}
- } else if (IS_UNUSED == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ goto isset_dim_obj_exit;
+ } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
+ goto isset_dim_obj_array;
+ }
+ }
+ if (IS_UNUSED == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
if (EXPECTED(Z_OBJ_HT_P(container)->has_dimension)) {
result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISSET) == 0);
} else {
if ((opline->extended_value & ZEND_ISSET) == 0) {
result = !result;
}
- } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- goto isset_dim_obj_again;
} else {
result = ((opline->extended_value & ZEND_ISSET) == 0);
}
+isset_dim_obj_exit:
+
ZEND_VM_SMART_BRANCH(result, 1);
ZVAL_BOOL(EX_VAR(opline->result.var), result);
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
-isset_dim_obj_again:
if (IS_UNUSED != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- HashTable *ht = Z_ARRVAL_P(container);
+ HashTable *ht;
zval *value;
zend_string *str;
+isset_dim_obj_array:
+ ht = Z_ARRVAL_P(container);
isset_again:
if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) {
str = Z_STR_P(offset);
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
result = (value == NULL || !i_zend_is_true(value));
}
- } else if (IS_UNUSED == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ goto isset_dim_obj_exit;
+ } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
+ goto isset_dim_obj_array;
+ }
+ }
+ if (IS_UNUSED == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
if (EXPECTED(Z_OBJ_HT_P(container)->has_dimension)) {
result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISSET) == 0);
} else {
if ((opline->extended_value & ZEND_ISSET) == 0) {
result = !result;
}
- } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- goto isset_dim_obj_again;
} else {
result = ((opline->extended_value & ZEND_ISSET) == 0);
}
+isset_dim_obj_exit:
zval_ptr_dtor_nogc(free_op2);
ZEND_VM_SMART_BRANCH(result, 1);
offset = EX_CONSTANT(opline->op2);
-isset_dim_obj_again:
if (IS_CV != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- HashTable *ht = Z_ARRVAL_P(container);
+ HashTable *ht;
zval *value;
zend_string *str;
+isset_dim_obj_array:
+ ht = Z_ARRVAL_P(container);
isset_again:
if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) {
str = Z_STR_P(offset);
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
result = (value == NULL || !i_zend_is_true(value));
}
- } else if (IS_CV == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ goto isset_dim_obj_exit;
+ } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
+ goto isset_dim_obj_array;
+ }
+ }
+ if (IS_CV == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
if (EXPECTED(Z_OBJ_HT_P(container)->has_dimension)) {
result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISSET) == 0);
} else {
if ((opline->extended_value & ZEND_ISSET) == 0) {
result = !result;
}
- } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- goto isset_dim_obj_again;
} else {
result = ((opline->extended_value & ZEND_ISSET) == 0);
}
+isset_dim_obj_exit:
+
ZEND_VM_SMART_BRANCH(result, 1);
ZVAL_BOOL(EX_VAR(opline->result.var), result);
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
-isset_dim_obj_again:
if (IS_CV != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- HashTable *ht = Z_ARRVAL_P(container);
+ HashTable *ht;
zval *value;
zend_string *str;
+isset_dim_obj_array:
+ ht = Z_ARRVAL_P(container);
isset_again:
if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) {
str = Z_STR_P(offset);
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
result = (value == NULL || !i_zend_is_true(value));
}
- } else if (IS_CV == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ goto isset_dim_obj_exit;
+ } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
+ goto isset_dim_obj_array;
+ }
+ }
+ if (IS_CV == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
if (EXPECTED(Z_OBJ_HT_P(container)->has_dimension)) {
result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISSET) == 0);
} else {
if ((opline->extended_value & ZEND_ISSET) == 0) {
result = !result;
}
- } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- goto isset_dim_obj_again;
} else {
result = ((opline->extended_value & ZEND_ISSET) == 0);
}
+isset_dim_obj_exit:
+
ZEND_VM_SMART_BRANCH(result, 1);
ZVAL_BOOL(EX_VAR(opline->result.var), result);
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
-isset_dim_obj_again:
if (IS_CV != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- HashTable *ht = Z_ARRVAL_P(container);
+ HashTable *ht;
zval *value;
zend_string *str;
+isset_dim_obj_array:
+ ht = Z_ARRVAL_P(container);
isset_again:
if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) {
str = Z_STR_P(offset);
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
result = (value == NULL || !i_zend_is_true(value));
}
- } else if (IS_CV == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ goto isset_dim_obj_exit;
+ } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
+ goto isset_dim_obj_array;
+ }
+ }
+ if (IS_CV == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
if (EXPECTED(Z_OBJ_HT_P(container)->has_dimension)) {
result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISSET) == 0);
} else {
if ((opline->extended_value & ZEND_ISSET) == 0) {
result = !result;
}
- } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- goto isset_dim_obj_again;
} else {
result = ((opline->extended_value & ZEND_ISSET) == 0);
}
+isset_dim_obj_exit:
zval_ptr_dtor_nogc(free_op2);
ZEND_VM_SMART_BRANCH(result, 1);
offset = EX_CONSTANT(opline->op2);
-isset_dim_obj_again:
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- HashTable *ht = Z_ARRVAL_P(container);
+ HashTable *ht;
zval *value;
zend_string *str;
+isset_dim_obj_array:
+ ht = Z_ARRVAL_P(container);
isset_again:
if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) {
str = Z_STR_P(offset);
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
result = (value == NULL || !i_zend_is_true(value));
}
- } else if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ goto isset_dim_obj_exit;
+ } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
+ goto isset_dim_obj_array;
+ }
+ }
+ if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
if (EXPECTED(Z_OBJ_HT_P(container)->has_dimension)) {
result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISSET) == 0);
} else {
if ((opline->extended_value & ZEND_ISSET) == 0) {
result = !result;
}
- } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- goto isset_dim_obj_again;
} else {
result = ((opline->extended_value & ZEND_ISSET) == 0);
}
+isset_dim_obj_exit:
+
zval_ptr_dtor_nogc(free_op1);
ZEND_VM_SMART_BRANCH(result, 1);
ZVAL_BOOL(EX_VAR(opline->result.var), result);
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
-isset_dim_obj_again:
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- HashTable *ht = Z_ARRVAL_P(container);
+ HashTable *ht;
zval *value;
zend_string *str;
+isset_dim_obj_array:
+ ht = Z_ARRVAL_P(container);
isset_again:
if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) {
str = Z_STR_P(offset);
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
result = (value == NULL || !i_zend_is_true(value));
}
- } else if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ goto isset_dim_obj_exit;
+ } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
+ goto isset_dim_obj_array;
+ }
+ }
+ if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
if (EXPECTED(Z_OBJ_HT_P(container)->has_dimension)) {
result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISSET) == 0);
} else {
if ((opline->extended_value & ZEND_ISSET) == 0) {
result = !result;
}
- } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- goto isset_dim_obj_again;
} else {
result = ((opline->extended_value & ZEND_ISSET) == 0);
}
+isset_dim_obj_exit:
+
zval_ptr_dtor_nogc(free_op1);
ZEND_VM_SMART_BRANCH(result, 1);
ZVAL_BOOL(EX_VAR(opline->result.var), result);
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
-isset_dim_obj_again:
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- HashTable *ht = Z_ARRVAL_P(container);
+ HashTable *ht;
zval *value;
zend_string *str;
+isset_dim_obj_array:
+ ht = Z_ARRVAL_P(container);
isset_again:
if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) {
str = Z_STR_P(offset);
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
result = (value == NULL || !i_zend_is_true(value));
}
- } else if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ goto isset_dim_obj_exit;
+ } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
+ goto isset_dim_obj_array;
+ }
+ }
+ if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
if (EXPECTED(Z_OBJ_HT_P(container)->has_dimension)) {
result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISSET) == 0);
} else {
if ((opline->extended_value & ZEND_ISSET) == 0) {
result = !result;
}
- } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- goto isset_dim_obj_again;
} else {
result = ((opline->extended_value & ZEND_ISSET) == 0);
}
+isset_dim_obj_exit:
zval_ptr_dtor_nogc(free_op2);
zval_ptr_dtor_nogc(free_op1);
ZEND_VM_SMART_BRANCH(result, 1);