Move cold code, duplicated by specializer, into helper functions

This commit is contained in:
Dmitry Stogov 2018-02-20 23:44:25 +03:00
parent b46f10b43f
commit a00286921e
3 changed files with 131 additions and 256 deletions

View File

@ -1091,14 +1091,21 @@ static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_illegal_offset(void)
zend_error(E_WARNING, "Illegal offset type");
}
static zend_never_inline void zend_assign_to_object_dim(zval *object, zval *dim, zval *value)
static zend_never_inline void zend_assign_to_object_dim(zval *object, zval *dim, zval *value OPLINE_DC EXECUTE_DATA_DC)
{
if (UNEXPECTED(!Z_OBJ_HT_P(object)->write_dimension)) {
zend_use_object_as_array();
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_UNDEF(EX_VAR(opline->result.var));
}
return;
}
Z_OBJ_HT_P(object)->write_dimension(object, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
}
static zend_never_inline void zend_binary_assign_op_obj_dim(zval *object, zval *property, zval *value, zval *retval, binary_op_type binary_op EXECUTE_DATA_DC)
@ -1328,7 +1335,7 @@ static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_deprecated_function(c
ZSTR_VAL(fbc->common.function_name));
}
static zend_never_inline void zend_assign_to_string_offset(zval *str, zval *dim, zval *value, zval *result EXECUTE_DATA_DC)
static zend_never_inline void zend_assign_to_string_offset(zval *str, zval *dim, zval *value OPLINE_DC EXECUTE_DATA_DC)
{
zend_uchar c;
size_t string_len;
@ -1338,8 +1345,8 @@ static zend_never_inline void zend_assign_to_string_offset(zval *str, zval *dim,
if (offset < -(zend_long)Z_STRLEN_P(str)) {
/* Error on negative offset */
zend_error(E_WARNING, "Illegal string offset: " ZEND_LONG_FMT, offset);
if (result) {
ZVAL_NULL(result);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
return;
}
@ -1359,8 +1366,8 @@ static zend_never_inline void zend_assign_to_string_offset(zval *str, zval *dim,
if (string_len == 0) {
/* Error on empty input string */
zend_error(E_WARNING, "Cannot assign an empty string to a string offset");
if (result) {
ZVAL_NULL(result);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
return;
}
@ -1386,13 +1393,13 @@ static zend_never_inline void zend_assign_to_string_offset(zval *str, zval *dim,
Z_STRVAL_P(str)[offset] = c;
if (result) {
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
/* Return the new character */
ZVAL_INTERNED_STR(result, ZSTR_CHAR(c));
ZVAL_INTERNED_STR(EX_VAR(opline->result.var), ZSTR_CHAR(c));
}
}
static zend_never_inline void zend_post_incdec_overloaded_property(zval *object, zval *property, void **cache_slot, int inc, zval *result)
static zend_never_inline void zend_post_incdec_overloaded_property(zval *object, zval *property, void **cache_slot, int inc OPLINE_DC EXECUTE_DATA_DC)
{
if (Z_OBJ_HT_P(object)->read_property && Z_OBJ_HT_P(object)->write_property) {
zval rv, obj;
@ -1404,7 +1411,7 @@ static zend_never_inline void zend_post_incdec_overloaded_property(zval *object,
z = Z_OBJ_HT(obj)->read_property(&obj, property, BP_VAR_R, cache_slot, &rv);
if (UNEXPECTED(EG(exception))) {
OBJ_RELEASE(Z_OBJ(obj));
ZVAL_UNDEF(result);
ZVAL_UNDEF(EX_VAR(opline->result.var));
return;
}
@ -1418,11 +1425,11 @@ static zend_never_inline void zend_post_incdec_overloaded_property(zval *object,
}
if (UNEXPECTED(Z_TYPE_P(z) == IS_REFERENCE)) {
ZVAL_COPY(result, Z_REFVAL_P(z));
ZVAL_COPY(EX_VAR(opline->result.var), Z_REFVAL_P(z));
} else {
ZVAL_COPY(result, z);
ZVAL_COPY(EX_VAR(opline->result.var), z);
}
ZVAL_COPY(&z_copy, result);
ZVAL_COPY(&z_copy, EX_VAR(opline->result.var));
if (inc) {
increment_function(&z_copy);
} else {
@ -1434,11 +1441,11 @@ static zend_never_inline void zend_post_incdec_overloaded_property(zval *object,
zval_ptr_dtor(z);
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
ZVAL_NULL(result);
ZVAL_NULL(EX_VAR(opline->result.var));
}
}
static zend_never_inline void zend_pre_incdec_overloaded_property(zval *object, zval *property, void **cache_slot, int inc, zval *result)
static zend_never_inline void zend_pre_incdec_overloaded_property(zval *object, zval *property, void **cache_slot, int inc OPLINE_DC EXECUTE_DATA_DC)
{
zval rv;
@ -1450,8 +1457,8 @@ static zend_never_inline void zend_pre_incdec_overloaded_property(zval *object,
zptr = z = Z_OBJ_HT(obj)->read_property(&obj, property, BP_VAR_R, cache_slot, &rv);
if (UNEXPECTED(EG(exception))) {
OBJ_RELEASE(Z_OBJ(obj));
if (result) {
ZVAL_UNDEF(result);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
return;
}
@ -1471,21 +1478,21 @@ static zend_never_inline void zend_pre_incdec_overloaded_property(zval *object,
} else {
decrement_function(z);
}
if (UNEXPECTED(result)) {
ZVAL_COPY(result, z);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), z);
}
Z_OBJ_HT(obj)->write_property(&obj, property, z, cache_slot);
OBJ_RELEASE(Z_OBJ(obj));
zval_ptr_dtor(zptr);
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(result)) {
ZVAL_NULL(result);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
}
}
static zend_never_inline void zend_assign_op_overloaded_property(zval *object, zval *property, void **cache_slot, zval *value, binary_op_type binary_op, zval *result)
static zend_never_inline void zend_assign_op_overloaded_property(zval *object, zval *property, void **cache_slot, zval *value, binary_op_type binary_op OPLINE_DC EXECUTE_DATA_DC)
{
zval *z;
zval rv, obj;
@ -1497,8 +1504,8 @@ static zend_never_inline void zend_assign_op_overloaded_property(zval *object, z
z = Z_OBJ_HT(obj)->read_property(&obj, property, BP_VAR_R, cache_slot, &rv);
if (UNEXPECTED(EG(exception))) {
OBJ_RELEASE(Z_OBJ(obj));
if (result) {
ZVAL_UNDEF(result);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_UNDEF(EX_VAR(opline->result.var));
}
return;
}
@ -1515,14 +1522,14 @@ static zend_never_inline void zend_assign_op_overloaded_property(zval *object, z
ZVAL_DEREF(z);
binary_op(z, z, value);
Z_OBJ_HT(obj)->write_property(&obj, property, z, cache_slot);
if (UNEXPECTED(result)) {
ZVAL_COPY(result, z);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), z);
}
zval_ptr_dtor(zptr);
} else {
zend_error(E_WARNING, "Attempt to assign property of non-object");
if (UNEXPECTED(result)) {
ZVAL_NULL(result);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
}
OBJ_RELEASE(Z_OBJ(obj));

View File

@ -839,7 +839,7 @@ ZEND_VM_C_LABEL(assign_op_object):
}
}
} else {
zend_assign_op_overloaded_property(object, property, ((OP2_TYPE == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_assign_op_overloaded_property(object, property, ((OP2_TYPE == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -1110,7 +1110,7 @@ ZEND_VM_C_LABEL(pre_incdec_object):
}
}
} else {
zend_pre_incdec_overloaded_property(object, property, ((OP2_TYPE == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_pre_incdec_overloaded_property(object, property, ((OP2_TYPE == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -1184,7 +1184,7 @@ ZEND_VM_C_LABEL(post_incdec_object):
}
}
} else {
zend_post_incdec_overloaded_property(object, property, ((OP2_TYPE == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, EX_VAR(opline->result.var));
zend_post_incdec_overloaded_property(object, property, ((OP2_TYPE == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -2288,11 +2288,7 @@ ZEND_VM_C_LABEL(try_assign_dim_array):
dim = GET_OP2_ZVAL_PTR(BP_VAR_R);
value = GET_OP_DATA_ZVAL_PTR_DEREF(BP_VAR_R);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
FREE_OP_DATA();
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -2305,7 +2301,7 @@ ZEND_VM_C_LABEL(try_assign_dim_array):
} else {
dim = GET_OP2_ZVAL_PTR(BP_VAR_R);
value = GET_OP_DATA_ZVAL_PTR_DEREF(BP_VAR_R);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
FREE_OP_DATA();
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {

View File

@ -22537,7 +22537,7 @@ assign_op_object:
}
}
} else {
zend_assign_op_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_assign_op_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -22972,7 +22972,7 @@ pre_incdec_object:
}
}
} else {
zend_pre_incdec_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_pre_incdec_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -23045,7 +23045,7 @@ post_incdec_object:
}
}
} else {
zend_post_incdec_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, EX_VAR(opline->result.var));
zend_post_incdec_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -23799,11 +23799,7 @@ try_assign_dim_array:
dim = RT_CONSTANT(opline, opline->op2);
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if (IS_CONST == IS_UNUSED) {
@ -23815,7 +23811,7 @@ try_assign_dim_array:
} else {
dim = RT_CONSTANT(opline, opline->op2);
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -23890,11 +23886,7 @@ try_assign_dim_array:
dim = RT_CONSTANT(opline, opline->op2);
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -23907,7 +23899,7 @@ try_assign_dim_array:
} else {
dim = RT_CONSTANT(opline, opline->op2);
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -23982,11 +23974,7 @@ try_assign_dim_array:
dim = RT_CONSTANT(opline, opline->op2);
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -23999,7 +23987,7 @@ try_assign_dim_array:
} else {
dim = RT_CONSTANT(opline, opline->op2);
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -24074,11 +24062,7 @@ try_assign_dim_array:
dim = RT_CONSTANT(opline, opline->op2);
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if (IS_CONST == IS_UNUSED) {
@ -24090,7 +24074,7 @@ try_assign_dim_array:
} else {
dim = RT_CONSTANT(opline, opline->op2);
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -24856,7 +24840,7 @@ assign_op_object:
}
}
} else {
zend_assign_op_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_assign_op_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -25293,7 +25277,7 @@ pre_incdec_object:
}
}
} else {
zend_pre_incdec_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_pre_incdec_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -25367,7 +25351,7 @@ post_incdec_object:
}
}
} else {
zend_post_incdec_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, EX_VAR(opline->result.var));
zend_post_incdec_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -26123,11 +26107,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
@ -26139,7 +26119,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -26214,11 +26194,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -26231,7 +26207,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -26306,11 +26282,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -26323,7 +26295,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -26398,11 +26370,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
@ -26414,7 +26382,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -27629,11 +27597,7 @@ try_assign_dim_array:
dim = NULL;
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if (IS_UNUSED == IS_UNUSED) {
@ -27645,7 +27609,7 @@ try_assign_dim_array:
} else {
dim = NULL;
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -27720,11 +27684,7 @@ try_assign_dim_array:
dim = NULL;
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -27737,7 +27697,7 @@ try_assign_dim_array:
} else {
dim = NULL;
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -27812,11 +27772,7 @@ try_assign_dim_array:
dim = NULL;
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -27829,7 +27785,7 @@ try_assign_dim_array:
} else {
dim = NULL;
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -27904,11 +27860,7 @@ try_assign_dim_array:
dim = NULL;
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if (IS_UNUSED == IS_UNUSED) {
@ -27920,7 +27872,7 @@ try_assign_dim_array:
} else {
dim = NULL;
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -28658,7 +28610,7 @@ assign_op_object:
}
}
} else {
zend_assign_op_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_assign_op_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -29093,7 +29045,7 @@ pre_incdec_object:
}
}
} else {
zend_pre_incdec_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_pre_incdec_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -29166,7 +29118,7 @@ post_incdec_object:
}
}
} else {
zend_post_incdec_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, EX_VAR(opline->result.var));
zend_post_incdec_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -29920,11 +29872,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if (IS_CV == IS_UNUSED) {
@ -29936,7 +29884,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -30011,11 +29959,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -30028,7 +29972,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -30103,11 +30047,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -30120,7 +30060,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -30195,11 +30135,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if (IS_CV == IS_UNUSED) {
@ -30211,7 +30147,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -31216,7 +31152,7 @@ assign_op_object:
}
}
} else {
zend_assign_op_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_assign_op_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -31369,7 +31305,7 @@ pre_incdec_object:
}
}
} else {
zend_pre_incdec_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_pre_incdec_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -31442,7 +31378,7 @@ post_incdec_object:
}
}
} else {
zend_post_incdec_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, EX_VAR(opline->result.var));
zend_post_incdec_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -32974,7 +32910,7 @@ assign_op_object:
}
}
} else {
zend_assign_op_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_assign_op_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -33127,7 +33063,7 @@ pre_incdec_object:
}
}
} else {
zend_pre_incdec_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_pre_incdec_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -33201,7 +33137,7 @@ post_incdec_object:
}
}
} else {
zend_post_incdec_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, EX_VAR(opline->result.var));
zend_post_incdec_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -35375,7 +35311,7 @@ assign_op_object:
}
}
} else {
zend_assign_op_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_assign_op_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -35528,7 +35464,7 @@ pre_incdec_object:
}
}
} else {
zend_pre_incdec_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_pre_incdec_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -35601,7 +35537,7 @@ post_incdec_object:
}
}
} else {
zend_post_incdec_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, EX_VAR(opline->result.var));
zend_post_incdec_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -39434,7 +39370,7 @@ assign_op_object:
}
}
} else {
zend_assign_op_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_assign_op_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -39869,7 +39805,7 @@ pre_incdec_object:
}
}
} else {
zend_pre_incdec_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_pre_incdec_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -39942,7 +39878,7 @@ post_incdec_object:
}
}
} else {
zend_post_incdec_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, EX_VAR(opline->result.var));
zend_post_incdec_overloaded_property(object, property, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -41068,11 +41004,7 @@ try_assign_dim_array:
dim = RT_CONSTANT(opline, opline->op2);
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if (IS_CONST == IS_UNUSED) {
@ -41084,7 +41016,7 @@ try_assign_dim_array:
} else {
dim = RT_CONSTANT(opline, opline->op2);
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -41159,11 +41091,7 @@ try_assign_dim_array:
dim = RT_CONSTANT(opline, opline->op2);
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -41176,7 +41104,7 @@ try_assign_dim_array:
} else {
dim = RT_CONSTANT(opline, opline->op2);
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -41251,11 +41179,7 @@ try_assign_dim_array:
dim = RT_CONSTANT(opline, opline->op2);
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -41268,7 +41192,7 @@ try_assign_dim_array:
} else {
dim = RT_CONSTANT(opline, opline->op2);
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -41343,11 +41267,7 @@ try_assign_dim_array:
dim = RT_CONSTANT(opline, opline->op2);
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if (IS_CONST == IS_UNUSED) {
@ -41359,7 +41279,7 @@ try_assign_dim_array:
} else {
dim = RT_CONSTANT(opline, opline->op2);
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -43278,7 +43198,7 @@ assign_op_object:
}
}
} else {
zend_assign_op_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_assign_op_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -43715,7 +43635,7 @@ pre_incdec_object:
}
}
} else {
zend_pre_incdec_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_pre_incdec_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -43789,7 +43709,7 @@ post_incdec_object:
}
}
} else {
zend_post_incdec_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, EX_VAR(opline->result.var));
zend_post_incdec_overloaded_property(object, property, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -44793,11 +44713,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
@ -44809,7 +44725,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -44884,11 +44800,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -44901,7 +44813,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -44976,11 +44888,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -44993,7 +44901,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -45068,11 +44976,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
@ -45084,7 +44988,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -47158,11 +47062,7 @@ try_assign_dim_array:
dim = NULL;
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if (IS_UNUSED == IS_UNUSED) {
@ -47174,7 +47074,7 @@ try_assign_dim_array:
} else {
dim = NULL;
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -47249,11 +47149,7 @@ try_assign_dim_array:
dim = NULL;
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -47266,7 +47162,7 @@ try_assign_dim_array:
} else {
dim = NULL;
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -47341,11 +47237,7 @@ try_assign_dim_array:
dim = NULL;
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -47358,7 +47250,7 @@ try_assign_dim_array:
} else {
dim = NULL;
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -47433,11 +47325,7 @@ try_assign_dim_array:
dim = NULL;
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if (IS_UNUSED == IS_UNUSED) {
@ -47449,7 +47337,7 @@ try_assign_dim_array:
} else {
dim = NULL;
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -48949,7 +48837,7 @@ assign_op_object:
}
}
} else {
zend_assign_op_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_assign_op_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL), value, binary_op OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -49384,7 +49272,7 @@ pre_incdec_object:
}
}
} else {
zend_pre_incdec_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL));
zend_pre_incdec_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -49457,7 +49345,7 @@ post_incdec_object:
}
}
} else {
zend_post_incdec_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc, EX_VAR(opline->result.var));
zend_post_incdec_overloaded_property(object, property, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), inc OPLINE_CC EXECUTE_DATA_CC);
}
} while (0);
@ -50457,11 +50345,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if (IS_CV == IS_UNUSED) {
@ -50473,7 +50357,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = RT_CONSTANT((opline+1), (opline+1)->op1);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -50548,11 +50432,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -50565,7 +50445,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -50640,11 +50520,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
@ -50657,7 +50533,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op_data);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {
@ -50732,11 +50608,7 @@ try_assign_dim_array:
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_object_dim(object_ptr, dim, value);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
} else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
if (IS_CV == IS_UNUSED) {
@ -50748,7 +50620,7 @@ try_assign_dim_array:
} else {
dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value, (UNEXPECTED(RETURN_VALUE_USED(opline)) ? EX_VAR(opline->result.var) : NULL) EXECUTE_DATA_CC);
zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC);
}
} else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) {