summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2018-06-27 13:34:15 +0300
committerDmitry Stogov <dmitry@zend.com>2018-06-27 13:34:15 +0300
commit56450c6e65a3f68a1a1c69600d7ae5ca9e5a135c (patch)
tree9b17e5ca4442b602ea7f63dcc25de6768fc84dc1 /Zend/zend_execute.c
parent32489322a1e7fc55fd09826c83a23ac7b702a29b (diff)
downloadphp-git-56450c6e65a3f68a1a1c69600d7ae5ca9e5a135c.tar.gz
Moved very rare exception check into a single place.
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index ac4555f683..3d4dcdb2c1 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1228,6 +1228,10 @@ static zend_never_inline ZEND_COLD void zend_wrong_string_offset(EXECUTE_DATA_D)
const zend_op *end;
uint32_t var;
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ return;
+ }
+
switch (opline->opcode) {
case ZEND_ASSIGN_ADD:
case ZEND_ASSIGN_SUB:
@@ -1859,9 +1863,7 @@ fetch_from_array:
zend_use_new_element_for_string();
} else {
zend_check_string_offset(dim, type EXECUTE_DATA_CC);
- if (EXPECTED(EG(exception) == NULL)) {
- zend_wrong_string_offset(EXECUTE_DATA_C);
- }
+ zend_wrong_string_offset(EXECUTE_DATA_C);
}
ZVAL_ERROR(result);
} else if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {