diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2015-05-20 22:51:45 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2015-05-20 22:51:45 +0300 |
| commit | d6bcf2bf2e90eeda9155e70d757cc76412835925 (patch) | |
| tree | 21f062d681187df389d227f84a9f0947999b70b4 | |
| parent | e57aceed424db0b57e8e68d434cb7d624d99de27 (diff) | |
| download | php-git-d6bcf2bf2e90eeda9155e70d757cc76412835925.tar.gz | |
Micro optimization
| -rw-r--r-- | Zend/zend_vm_def.h | 9 | ||||
| -rw-r--r-- | Zend/zend_vm_execute.h | 36 |
2 files changed, 20 insertions, 25 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 5d6b128cb3..a1d308e442 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -3924,15 +3924,14 @@ ZEND_VM_HANDLER(62, ZEND_RETURN, CONST|TMP|VAR|CV, ANY) if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { SAVE_OPLINE(); retval_ptr = GET_OP1_UNDEF_CV(retval_ptr, BP_VAR_R); - CHECK_EXCEPTION(); - } - - if (!EX(return_value)) { + if (EX(return_value)) { + ZVAL_NULL(EX(return_value)); + } + } else if (!EX(return_value)) { if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_TMP_VAR ) { if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { SAVE_OPLINE(); zval_dtor_func_for_ptr(Z_COUNTED_P(free_op1)); - CHECK_EXCEPTION(); } } } else { diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index e98f9dbf15..9da4546b78 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -3252,15 +3252,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_CONST_HANDLER(ZEND if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { SAVE_OPLINE(); retval_ptr = GET_OP1_UNDEF_CV(retval_ptr, BP_VAR_R); - CHECK_EXCEPTION(); - } - - if (!EX(return_value)) { + if (EX(return_value)) { + ZVAL_NULL(EX(return_value)); + } + } else if (!EX(return_value)) { if (IS_CONST == IS_VAR || IS_CONST == IS_TMP_VAR ) { if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { SAVE_OPLINE(); zval_dtor_func_for_ptr(Z_COUNTED_P(free_op1)); - CHECK_EXCEPTION(); } } } else { @@ -11642,15 +11641,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_TMP_HANDLER(ZEND_O if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { SAVE_OPLINE(); retval_ptr = GET_OP1_UNDEF_CV(retval_ptr, BP_VAR_R); - CHECK_EXCEPTION(); - } - - if (!EX(return_value)) { + if (EX(return_value)) { + ZVAL_NULL(EX(return_value)); + } + } else if (!EX(return_value)) { if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_TMP_VAR ) { if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { SAVE_OPLINE(); zval_dtor_func_for_ptr(Z_COUNTED_P(free_op1)); - CHECK_EXCEPTION(); } } } else { @@ -14814,15 +14812,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_O if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { SAVE_OPLINE(); retval_ptr = GET_OP1_UNDEF_CV(retval_ptr, BP_VAR_R); - CHECK_EXCEPTION(); - } - - if (!EX(return_value)) { + if (EX(return_value)) { + ZVAL_NULL(EX(return_value)); + } + } else if (!EX(return_value)) { if (IS_VAR == IS_VAR || IS_VAR == IS_TMP_VAR ) { if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { SAVE_OPLINE(); zval_dtor_func_for_ptr(Z_COUNTED_P(free_op1)); - CHECK_EXCEPTION(); } } } else { @@ -28723,15 +28720,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_CV_HANDLER(ZEND_OP if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { SAVE_OPLINE(); retval_ptr = GET_OP1_UNDEF_CV(retval_ptr, BP_VAR_R); - CHECK_EXCEPTION(); - } - - if (!EX(return_value)) { + if (EX(return_value)) { + ZVAL_NULL(EX(return_value)); + } + } else if (!EX(return_value)) { if (IS_CV == IS_VAR || IS_CV == IS_TMP_VAR ) { if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { SAVE_OPLINE(); zval_dtor_func_for_ptr(Z_COUNTED_P(free_op1)); - CHECK_EXCEPTION(); } } } else { |
