USE_OPLINE
zend_free_op free_op1;
zval *object_ptr;
-
+ zend_free_op free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CONST == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CONST == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CONST == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CONST == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = RT_CONSTANT(opline, opline->op2);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
}
- value = RT_CONSTANT((opline+1), (opline+1)->op1);
- value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CONST == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_TMP_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_TMP_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_TMP_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = RT_CONSTANT(opline, opline->op2);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
}
- value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CONST == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = RT_CONSTANT(opline, opline->op2);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
}
- value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zend_free_op free_op1;
zval *object_ptr;
-
+ zend_free_op free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CONST == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ if (IS_CV == IS_CV || IS_CV == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CV == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CV == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CV == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = RT_CONSTANT(opline, opline->op2);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CV);
}
- value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_CV);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zend_free_op free_op1;
zval *object_ptr;
- zend_free_op free_op2;
+ zend_free_op free_op2, free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CONST == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CONST == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CONST == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
}
- value = RT_CONSTANT((opline+1), (opline+1)->op1);
- value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_TMP_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_TMP_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_TMP_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
}
- value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
}
- value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zend_free_op free_op1;
zval *object_ptr;
- zend_free_op free_op2;
+ zend_free_op free_op2, free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ if (IS_CV == IS_CV || IS_CV == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CV == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CV == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CV == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CV);
}
- value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_CV);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zend_free_op free_op1;
zval *object_ptr;
-
+ zend_free_op free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_UNUSED == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CONST == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CONST == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CONST == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = NULL;
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
}
- value = RT_CONSTANT((opline+1), (opline+1)->op1);
- value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_UNUSED == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_TMP_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_TMP_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_TMP_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = NULL;
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
}
- value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_UNUSED == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = NULL;
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
}
- value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zend_free_op free_op1;
zval *object_ptr;
-
+ zend_free_op free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_UNUSED == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ if (IS_CV == IS_CV || IS_CV == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CV == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CV == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CV == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = NULL;
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CV);
}
- value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_CV);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zend_free_op free_op1;
zval *object_ptr;
-
+ zend_free_op free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CV == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CONST == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CONST == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CONST == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = EX_VAR(opline->op2.var);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
}
- value = RT_CONSTANT((opline+1), (opline+1)->op1);
- value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CV == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_TMP_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_TMP_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_TMP_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = EX_VAR(opline->op2.var);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
}
- value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CV == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = EX_VAR(opline->op2.var);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
}
- value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zend_free_op free_op1;
zval *object_ptr;
-
+ zend_free_op free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CV == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ if (IS_CV == IS_CV || IS_CV == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CV == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CV == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CV == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = EX_VAR(opline->op2.var);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CV);
}
- value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_CV);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zval *object_ptr;
-
+ zend_free_op free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CONST == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CONST == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CONST == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CONST == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = RT_CONSTANT(opline, opline->op2);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
}
- value = RT_CONSTANT((opline+1), (opline+1)->op1);
- value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CONST == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_TMP_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_TMP_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_TMP_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = RT_CONSTANT(opline, opline->op2);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
}
- value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CONST == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = RT_CONSTANT(opline, opline->op2);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
}
- value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zval *object_ptr;
-
+ zend_free_op free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CONST == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ if (IS_CV == IS_CV || IS_CV == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CV == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CV == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CV == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = RT_CONSTANT(opline, opline->op2);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CV);
}
- value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_CV);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zval *object_ptr;
- zend_free_op free_op2;
+ zend_free_op free_op2, free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CONST == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CONST == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CONST == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
}
- value = RT_CONSTANT((opline+1), (opline+1)->op1);
- value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_TMP_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_TMP_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_TMP_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
}
- value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
}
- value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zval *object_ptr;
- zend_free_op free_op2;
+ zend_free_op free_op2, free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ if (IS_CV == IS_CV || IS_CV == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CV == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CV == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CV == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CV);
}
- value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_CV);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zval *object_ptr;
-
+ zend_free_op free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_UNUSED == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CONST == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CONST == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CONST == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = NULL;
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
}
- value = RT_CONSTANT((opline+1), (opline+1)->op1);
- value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_UNUSED == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_TMP_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_TMP_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_TMP_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = NULL;
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
}
- value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_UNUSED == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = NULL;
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
}
- value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zval *object_ptr;
-
+ zend_free_op free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_UNUSED == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ if (IS_CV == IS_CV || IS_CV == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CV == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CV == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CV == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = NULL;
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CV);
}
- value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_CV);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zval *object_ptr;
-
+ zend_free_op free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CV == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CONST == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CONST == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CONST == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = EX_VAR(opline->op2.var);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = RT_CONSTANT((opline+1), (opline+1)->op1);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
}
- value = RT_CONSTANT((opline+1), (opline+1)->op1);
- value = zend_assign_to_variable(variable_ptr, value, IS_CONST);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CV == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_TMP_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_TMP_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_TMP_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = EX_VAR(opline->op2.var);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
}
- value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CV == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+ zval_ptr_dtor_nogc(free_op_data);
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_VAR == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_VAR == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ zval_ptr_dtor_nogc(free_op_data);
+ }
+ } else if (IS_VAR == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = EX_VAR(opline->op2.var);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
}
- value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_VAR);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}
USE_OPLINE
zval *object_ptr;
-
+ zend_free_op free_op_data;
zval *value;
zval *variable_ptr;
zval *dim;
try_assign_dim_array:
SEPARATE_ARRAY(object_ptr);
if (IS_CV == IS_UNUSED) {
- variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), &EG(uninitialized_zval));
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ if (IS_CV == IS_CV || IS_CV == IS_VAR) {
+ ZVAL_DEREF(value);
+ }
+ variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value);
if (UNEXPECTED(variable_ptr == NULL)) {
+
zend_cannot_add_element();
goto assign_dim_error;
+ } else if (IS_CV == IS_CV) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+ } else if (IS_CV == IS_VAR) {
+ if (value != free_op_data) {
+ if (Z_REFCOUNTED_P(value)) {
+ Z_ADDREF_P(value);
+ }
+
+ }
+ } else if (IS_CV == IS_CONST) {
+ if (UNEXPECTED(Z_REFCOUNTED_P(value))) {
+ Z_ADDREF_P(value);
+ }
}
} else {
dim = EX_VAR(opline->op2.var);
if (UNEXPECTED(variable_ptr == NULL)) {
goto assign_dim_error;
}
+ value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+ value = zend_assign_to_variable(variable_ptr, value, IS_CV);
}
- value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
- value = zend_assign_to_variable(variable_ptr, value, IS_CV);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), value);
}