summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2016-06-09 12:39:38 +0300
committerDmitry Stogov <dmitry@zend.com>2016-06-09 12:39:38 +0300
commite7e79aa409d2b92bf2bcbe0fcdcaf1a9820903f2 (patch)
tree0cf4fbd1b517986fd007bb3b9bd0a84ac0fe6f39 /Zend
parent4138db014c5c7159bba10e94e36f2c317bf93265 (diff)
downloadphp-git-e7e79aa409d2b92bf2bcbe0fcdcaf1a9820903f2.tar.gz
Delay IS_ERROR checks
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_execute.c17
-rw-r--r--Zend/zend_vm_def.h20
-rw-r--r--Zend/zend_vm_execute.h544
3 files changed, 188 insertions, 393 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 683f674d96..b2769ad6fb 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1950,11 +1950,6 @@ static zend_always_inline void zend_fetch_property_address(zval *result, zval *c
{
if (container_op_type != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
do {
- if (container_op_type == IS_VAR && UNEXPECTED(Z_ISERROR_P(container))) {
- ZVAL_ERROR(result);
- return;
- }
-
if (Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
@@ -1969,7 +1964,9 @@ static zend_always_inline void zend_fetch_property_address(zval *result, zval *c
zval_ptr_dtor_nogc(container);
object_init(container);
} else {
- zend_error(E_WARNING, "Attempt to modify property of non-object");
+ if (container_op_type != IS_VAR || EXPECTED(!Z_ISERROR_P(container))) {
+ zend_error(E_WARNING, "Attempt to modify property of non-object");
+ }
ZVAL_ERROR(result);
return;
}
@@ -2005,6 +2002,7 @@ static zend_always_inline void zend_fetch_property_address(zval *result, zval *c
zval *ptr = Z_OBJ_HT_P(container)->get_property_ptr_ptr(container, prop_ptr, type, cache_slot);
if (NULL == ptr) {
if (EXPECTED(Z_OBJ_HT_P(container)->read_property)) {
+use_read_property:
ptr = Z_OBJ_HT_P(container)->read_property(container, prop_ptr, type, cache_slot, result);
if (ptr != result) {
ZVAL_INDIRECT(result, ptr);
@@ -2019,12 +2017,7 @@ static zend_always_inline void zend_fetch_property_address(zval *result, zval *c
ZVAL_INDIRECT(result, ptr);
}
} else if (EXPECTED(Z_OBJ_HT_P(container)->read_property)) {
- zval *ptr = Z_OBJ_HT_P(container)->read_property(container, prop_ptr, type, cache_slot, result);
- if (ptr != result) {
- ZVAL_INDIRECT(result, ptr);
- } else if (UNEXPECTED(Z_ISREF_P(ptr) && Z_REFCOUNT_P(ptr) == 1)) {
- ZVAL_UNREF(ptr);
- }
+ goto use_read_property;
} else {
zend_error(E_WARNING, "This object doesn't support property references");
ZVAL_ERROR(result);
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 2a29ff744f..331ebdb85d 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -839,11 +839,10 @@ ZEND_VM_C_LABEL(assign_dim_op_convert_to_array):
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ ZEND_VM_C_GOTO(assign_dim_op_convert_to_array);
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- ZEND_VM_C_GOTO(assign_dim_op_convert_to_array);
- }
- if (UNEXPECTED(OP1_TYPE != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(OP1_TYPE != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
ZEND_VM_C_LABEL(assign_dim_op_ret_null):
@@ -2159,13 +2158,6 @@ ZEND_VM_HANDLER(136, ZEND_ASSIGN_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, SPEC(
if (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (OP1_TYPE == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- FREE_OP_DATA();
- ZEND_VM_C_GOTO(exit_assign_obj);
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -2192,7 +2184,9 @@ ZEND_VM_HANDLER(136, ZEND_ASSIGN_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, SPEC(
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (OP1_TYPE != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -2373,7 +2367,7 @@ ZEND_VM_C_LABEL(try_assign_dim_array):
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
ZEND_VM_C_GOTO(try_assign_dim_array);
} else {
- if (OP1_TYPE != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (OP1_TYPE != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = GET_OP2_ZVAL_PTR(BP_VAR_R);
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 25769073af..ca5b343cf5 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -17170,11 +17170,10 @@ assign_dim_op_convert_to_array:
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ goto assign_dim_op_convert_to_array;
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- goto assign_dim_op_convert_to_array;
- }
- if (UNEXPECTED(IS_VAR != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
assign_dim_op_ret_null:
@@ -18389,13 +18388,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_D
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -18422,7 +18414,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_D
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -18550,13 +18544,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_D
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -18583,7 +18570,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_D
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -18711,13 +18700,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_D
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -18744,7 +18726,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_D
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -18872,13 +18856,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_D
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -18905,7 +18882,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_D
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -19085,7 +19064,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = EX_CONSTANT(opline->op2);
@@ -19177,7 +19156,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = EX_CONSTANT(opline->op2);
@@ -19269,7 +19248,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = EX_CONSTANT(opline->op2);
@@ -19360,7 +19339,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = EX_CONSTANT(opline->op2);
@@ -20655,11 +20634,10 @@ assign_dim_op_convert_to_array:
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ goto assign_dim_op_convert_to_array;
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- goto assign_dim_op_convert_to_array;
- }
- if (UNEXPECTED(IS_VAR != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
assign_dim_op_ret_null:
@@ -21061,7 +21039,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = NULL;
@@ -21153,7 +21131,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = NULL;
@@ -21245,7 +21223,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = NULL;
@@ -21336,7 +21314,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = NULL;
@@ -22018,11 +21996,10 @@ assign_dim_op_convert_to_array:
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ goto assign_dim_op_convert_to_array;
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- goto assign_dim_op_convert_to_array;
- }
- if (UNEXPECTED(IS_VAR != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
assign_dim_op_ret_null:
@@ -23237,13 +23214,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -23270,7 +23240,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -23398,13 +23370,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -23431,7 +23396,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -23559,13 +23526,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -23592,7 +23552,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -23720,13 +23682,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -23753,7 +23708,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -23933,7 +23890,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
@@ -24025,7 +23982,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
@@ -24117,7 +24074,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
@@ -24208,7 +24165,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
@@ -25028,11 +24985,10 @@ assign_dim_op_convert_to_array:
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ goto assign_dim_op_convert_to_array;
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- goto assign_dim_op_convert_to_array;
- }
- if (UNEXPECTED(IS_VAR != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
assign_dim_op_ret_null:
@@ -26252,13 +26208,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -26285,7 +26234,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -26413,13 +26364,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -26446,7 +26390,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -26574,13 +26520,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -26607,7 +26546,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -26735,13 +26676,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -26768,7 +26702,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -26948,7 +26884,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
@@ -27040,7 +26976,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
@@ -27132,7 +27068,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
@@ -27223,7 +27159,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_VAR != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
@@ -27969,11 +27905,10 @@ assign_dim_op_convert_to_array:
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ goto assign_dim_op_convert_to_array;
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- goto assign_dim_op_convert_to_array;
- }
- if (UNEXPECTED(IS_UNUSED != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
assign_dim_op_ret_null:
@@ -28899,13 +28834,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_O
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_UNUSED == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -28932,7 +28860,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_O
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -29060,13 +28990,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_O
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_UNUSED == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -29093,7 +29016,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_O
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -29221,13 +29146,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_O
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_UNUSED == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -29254,7 +29172,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_O
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -29382,13 +29302,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_O
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_UNUSED == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -29415,7 +29328,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_O
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -30794,11 +30709,10 @@ assign_dim_op_convert_to_array:
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ goto assign_dim_op_convert_to_array;
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- goto assign_dim_op_convert_to_array;
- }
- if (UNEXPECTED(IS_UNUSED != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
assign_dim_op_ret_null:
@@ -31574,11 +31488,10 @@ assign_dim_op_convert_to_array:
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ goto assign_dim_op_convert_to_array;
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- goto assign_dim_op_convert_to_array;
- }
- if (UNEXPECTED(IS_UNUSED != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
assign_dim_op_ret_null:
@@ -32504,13 +32417,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_D
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_UNUSED == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -32537,7 +32443,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_D
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -32665,13 +32573,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_D
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_UNUSED == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -32698,7 +32599,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_D
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -32826,13 +32729,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_D
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_UNUSED == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -32859,7 +32755,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_D
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -32987,13 +32885,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_D
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_UNUSED == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -33020,7 +32911,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_D
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -34067,11 +33960,10 @@ assign_dim_op_convert_to_array:
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ goto assign_dim_op_convert_to_array;
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- goto assign_dim_op_convert_to_array;
- }
- if (UNEXPECTED(IS_UNUSED != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
assign_dim_op_ret_null:
@@ -35002,13 +34894,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_UNUSED == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -35035,7 +34920,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -35163,13 +35050,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_UNUSED == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -35196,7 +35076,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -35324,13 +35206,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_UNUSED == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -35357,7 +35232,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -35485,13 +35362,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_UNUSED == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -35518,7 +35388,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_UNUSED != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -38822,11 +38694,10 @@ assign_dim_op_convert_to_array:
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ goto assign_dim_op_convert_to_array;
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- goto assign_dim_op_convert_to_array;
- }
- if (UNEXPECTED(IS_CV != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
assign_dim_op_ret_null:
@@ -40315,13 +40186,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DA
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -40348,7 +40212,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DA
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -40476,13 +40342,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DA
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -40509,7 +40368,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DA
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -40637,13 +40498,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DA
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -40670,7 +40524,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DA
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -40798,13 +40654,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DA
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -40831,7 +40680,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DA
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -41011,7 +40862,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = EX_CONSTANT(opline->op2);
@@ -41103,7 +40954,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = EX_CONSTANT(opline->op2);
@@ -41195,7 +41046,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = EX_CONSTANT(opline->op2);
@@ -41286,7 +41137,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = EX_CONSTANT(opline->op2);
@@ -43496,11 +43347,10 @@ assign_dim_op_convert_to_array:
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ goto assign_dim_op_convert_to_array;
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- goto assign_dim_op_convert_to_array;
- }
- if (UNEXPECTED(IS_CV != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
assign_dim_op_ret_null:
@@ -44164,7 +44014,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = NULL;
@@ -44256,7 +44106,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = NULL;
@@ -44348,7 +44198,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = NULL;
@@ -44439,7 +44289,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = NULL;
@@ -45852,11 +45702,10 @@ assign_dim_op_convert_to_array:
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ goto assign_dim_op_convert_to_array;
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- goto assign_dim_op_convert_to_array;
- }
- if (UNEXPECTED(IS_CV != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
assign_dim_op_ret_null:
@@ -47206,13 +47055,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -47239,7 +47081,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -47367,13 +47211,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -47400,7 +47237,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -47528,13 +47367,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -47561,7 +47393,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -47689,13 +47523,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -47722,7 +47549,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -47902,7 +47731,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
@@ -47994,7 +47823,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
@@ -48086,7 +47915,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
@@ -48177,7 +48006,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
@@ -49935,11 +49764,10 @@ assign_dim_op_convert_to_array:
zend_check_string_offset(dim, BP_VAR_RW);
zend_wrong_string_offset();
}
+ } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
+ goto assign_dim_op_convert_to_array;
} else {
- if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
- goto assign_dim_op_convert_to_array;
- }
- if (UNEXPECTED(IS_CV != IS_VAR || !Z_ISERROR_P(container))) {
+ if (UNEXPECTED(IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(container)))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
assign_dim_op_ret_null:
@@ -51295,13 +51123,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_D
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -51328,7 +51149,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_D
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -51456,13 +51279,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_D
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -51489,7 +51305,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_D
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -51617,13 +51435,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_D
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
- zval_ptr_dtor_nogc(free_op_data);
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -51650,7 +51461,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_D
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -51778,13 +51591,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_D
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
do {
- if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(object))) {
- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(EX_VAR(opline->result.var));
- }
-
- goto exit_assign_obj;
- }
if (Z_ISREF_P(object)) {
object = Z_REFVAL_P(object);
if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) {
@@ -51811,7 +51617,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_D
}
Z_DELREF_P(object);
} else {
- zend_error(E_WARNING, "Attempt to assign property of non-object");
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object))) {
+ zend_error(E_WARNING, "Attempt to assign property of non-object");
+ }
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_NULL(EX_VAR(opline->result.var));
}
@@ -51991,7 +51799,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
@@ -52083,7 +51891,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
@@ -52175,7 +51983,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
@@ -52266,7 +52074,7 @@ try_assign_dim_array:
zend_hash_init(Z_ARRVAL_P(object_ptr), 8, NULL, ZVAL_PTR_DTOR, 0);
goto try_assign_dim_array;
} else {
- if (IS_CV != IS_VAR || UNEXPECTED(!Z_ISERROR_P(object_ptr))) {
+ if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
}
dim = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);