diff options
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r-- | Zend/zend_vm_execute.h | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index cb20546da9..af3c181552 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -17596,7 +17596,9 @@ assign_dim_op_convert_to_array: zend_throw_error(NULL, "[] operator not supported for strings"); } else { zend_check_string_offset(dim, BP_VAR_RW); - zend_wrong_string_offset(); + if (EXPECTED(EG(exception) == NULL)) { + zend_wrong_string_offset(); + } } } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { goto assign_dim_op_convert_to_array; @@ -21014,7 +21016,9 @@ assign_dim_op_convert_to_array: zend_throw_error(NULL, "[] operator not supported for strings"); } else { zend_check_string_offset(dim, BP_VAR_RW); - zend_wrong_string_offset(); + if (EXPECTED(EG(exception) == NULL)) { + zend_wrong_string_offset(); + } } } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { goto assign_dim_op_convert_to_array; @@ -22385,7 +22389,9 @@ assign_dim_op_convert_to_array: zend_throw_error(NULL, "[] operator not supported for strings"); } else { zend_check_string_offset(dim, BP_VAR_RW); - zend_wrong_string_offset(); + if (EXPECTED(EG(exception) == NULL)) { + zend_wrong_string_offset(); + } } } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { goto assign_dim_op_convert_to_array; @@ -25330,7 +25336,9 @@ assign_dim_op_convert_to_array: zend_throw_error(NULL, "[] operator not supported for strings"); } else { zend_check_string_offset(dim, BP_VAR_RW); - zend_wrong_string_offset(); + if (EXPECTED(EG(exception) == NULL)) { + zend_wrong_string_offset(); + } } } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { goto assign_dim_op_convert_to_array; @@ -37055,7 +37063,9 @@ assign_dim_op_convert_to_array: zend_throw_error(NULL, "[] operator not supported for strings"); } else { zend_check_string_offset(dim, BP_VAR_RW); - zend_wrong_string_offset(); + if (EXPECTED(EG(exception) == NULL)) { + zend_wrong_string_offset(); + } } } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { goto assign_dim_op_convert_to_array; @@ -41665,7 +41675,9 @@ assign_dim_op_convert_to_array: zend_throw_error(NULL, "[] operator not supported for strings"); } else { zend_check_string_offset(dim, BP_VAR_RW); - zend_wrong_string_offset(); + if (EXPECTED(EG(exception) == NULL)) { + zend_wrong_string_offset(); + } } } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { goto assign_dim_op_convert_to_array; @@ -44149,7 +44161,9 @@ assign_dim_op_convert_to_array: zend_throw_error(NULL, "[] operator not supported for strings"); } else { zend_check_string_offset(dim, BP_VAR_RW); - zend_wrong_string_offset(); + if (EXPECTED(EG(exception) == NULL)) { + zend_wrong_string_offset(); + } } } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { goto assign_dim_op_convert_to_array; @@ -48220,7 +48234,9 @@ assign_dim_op_convert_to_array: zend_throw_error(NULL, "[] operator not supported for strings"); } else { zend_check_string_offset(dim, BP_VAR_RW); - zend_wrong_string_offset(); + if (EXPECTED(EG(exception) == NULL)) { + zend_wrong_string_offset(); + } } } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { goto assign_dim_op_convert_to_array; |