Skip to content

Commit a4d7458

Browse files
committed
apply suggestions from code review
1 parent b5b0040 commit a4d7458

2 files changed

Lines changed: 56 additions & 23 deletions

File tree

Zend/zend_vm_def.h

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4491,6 +4491,21 @@ ZEND_VM_COLD_CONST_HANDLER(124, ZEND_VERIFY_RETURN_TYPE, CONST|TMP|VAR|UNUSED|CV
44914491
ZVAL_DEREF(retval_ptr);
44924492
}
44934493

4494+
if (EXPECTED(ZEND_TYPE_CONTAINS_CODE(ret_info->type, Z_TYPE_P(retval_ref)))) {
4495+
ZEND_VM_NEXT_OPCODE();
4496+
}
4497+
4498+
if (OP1_TYPE == IS_CV && UNEXPECTED(Z_ISUNDEF_P(retval_ptr))) {
4499+
SAVE_OPLINE();
4500+
retval_ref = retval_ptr = ZVAL_UNDEFINED_OP1();
4501+
if (UNEXPECTED(EG(exception))) {
4502+
HANDLE_EXCEPTION();
4503+
}
4504+
if (ZEND_TYPE_FULL_MASK(ret_info->type) & MAY_BE_NULL) {
4505+
ZEND_VM_NEXT_OPCODE();
4506+
}
4507+
}
4508+
44944509
zend_reference *ref = NULL;
44954510
if (UNEXPECTED(retval_ref != retval_ptr)) {
44964511
if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) {
@@ -4505,19 +4520,7 @@ ZEND_VM_COLD_CONST_HANDLER(124, ZEND_VERIFY_RETURN_TYPE, CONST|TMP|VAR|UNUSED|CV
45054520
}
45064521
retval_ptr = retval_ref;
45074522
}
4508-
}
4509-
4510-
if (EXPECTED(ZEND_TYPE_CONTAINS_CODE(ret_info->type, Z_TYPE_P(retval_ptr)))) {
4511-
ZEND_VM_NEXT_OPCODE();
4512-
}
4513-
4514-
if (OP1_TYPE == IS_CV && UNEXPECTED(Z_ISUNDEF_P(retval_ptr))) {
4515-
SAVE_OPLINE();
4516-
retval_ref = retval_ptr = ZVAL_UNDEFINED_OP1();
4517-
if (UNEXPECTED(EG(exception))) {
4518-
HANDLE_EXCEPTION();
4519-
}
4520-
if (ZEND_TYPE_FULL_MASK(ret_info->type) & MAY_BE_NULL) {
4523+
if (EXPECTED(ZEND_TYPE_CONTAINS_CODE(ret_info->type, Z_TYPE_P(retval_ptr)))) {
45214524
ZEND_VM_NEXT_OPCODE();
45224525
}
45234526
}

Zend/zend_vm_execute.h

Lines changed: 40 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)