@@ -2588,31 +2588,31 @@ static int ZEND_FASTCALL ZEND_DO_FCALL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
2588
2588
static inline void zend_return_hint_check(zend_execute_data *execute_data, zval *retval_ptr TSRMLS_DC) {
2589
2589
zend_return_hint *return_hint = &EX(function_state).function->common.return_hint;
2590
2590
2591
- if (!retval_ptr || Z_TYPE_P(retval_ptr) == IS_NULL) {
2591
+ if (UNEXPECTED( !retval_ptr || Z_TYPE_P(retval_ptr) == IS_NULL) ) {
2592
2592
zend_return_hint_error(E_RECOVERABLE_ERROR, EX(function_state).function, retval_ptr, NULL TSRMLS_CC);
2593
2593
} else if (retval_ptr){
2594
2594
switch (return_hint->type) {
2595
- case IS_ARRAY: if (Z_TYPE_P(retval_ptr) != IS_ARRAY) {
2595
+ case IS_ARRAY: if (UNEXPECTED( Z_TYPE_P(retval_ptr) != IS_ARRAY) ) {
2596
2596
zend_return_hint_error(E_RECOVERABLE_ERROR, EX(function_state).function, retval_ptr, NULL TSRMLS_CC);
2597
2597
} break;
2598
2598
2599
- case IS_CALLABLE: if (Z_TYPE_P(retval_ptr) != IS_OBJECT ||
2600
- !zend_is_callable_ex(retval_ptr, NULL, IS_CALLABLE_CHECK_SILENT, NULL, NULL, NULL, NULL TSRMLS_CC)) {
2599
+ case IS_CALLABLE: if (UNEXPECTED( Z_TYPE_P(retval_ptr) != IS_OBJECT ||
2600
+ !zend_is_callable_ex(retval_ptr, NULL, IS_CALLABLE_CHECK_SILENT, NULL, NULL, NULL, NULL TSRMLS_CC))) {
2601
2601
zend_return_hint_error(E_RECOVERABLE_ERROR, EX(function_state).function, retval_ptr, NULL TSRMLS_CC);
2602
2602
} break;
2603
2603
2604
2604
case IS_OBJECT: {
2605
2605
zend_class_entry **ce = NULL;
2606
2606
2607
- if (Z_TYPE_P(retval_ptr) != IS_OBJECT) {
2607
+ if (UNEXPECTED( Z_TYPE_P(retval_ptr) != IS_OBJECT) ) {
2608
2608
zend_return_hint_error(E_RECOVERABLE_ERROR, EX(function_state).function, retval_ptr, NULL TSRMLS_CC);
2609
2609
}
2610
2610
2611
- if (zend_lookup_class(return_hint->class_name, return_hint->class_name_len, &ce TSRMLS_CC) != SUCCESS) {
2611
+ if (UNEXPECTED( zend_lookup_class(return_hint->class_name, return_hint->class_name_len, &ce TSRMLS_CC) != SUCCESS) ) {
2612
2612
zend_return_hint_error(E_RECOVERABLE_ERROR, EX(function_state).function, NULL, "the class could not be found" TSRMLS_CC);
2613
2613
}
2614
2614
2615
- if (!instanceof_function(Z_OBJCE_P(retval_ptr), *ce TSRMLS_CC)) {
2615
+ if (UNEXPECTED( !instanceof_function(Z_OBJCE_P(retval_ptr), *ce TSRMLS_CC) )) {
2616
2616
zend_return_hint_error(E_RECOVERABLE_ERROR, EX(function_state).function, retval_ptr, NULL TSRMLS_CC);
2617
2617
}
2618
2618
}
@@ -2629,8 +2629,9 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
2629
2629
SAVE_OPLINE();
2630
2630
retval_ptr = opline->op1.zv;
2631
2631
2632
- if (EX(function_state).function->common.return_hint.used)
2632
+ if (EX(function_state).function->common.return_hint.used) {
2633
2633
zend_return_hint_check(execute_data, retval_ptr TSRMLS_CC);
2634
+ }
2634
2635
2635
2636
if (!EG(return_value_ptr_ptr)) {
2636
2637
@@ -2683,8 +2684,9 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CONST_HANDLER(ZEND_OPCODE_HAND
2683
2684
2684
2685
retval_ptr = opline->op1.zv;
2685
2686
2686
- if (EX(function_state).function->common.return_hint.used)
2687
+ if (EX(function_state).function->common.return_hint.used) {
2687
2688
zend_return_hint_check(execute_data, retval_ptr TSRMLS_CC);
2689
+ }
2688
2690
2689
2691
if (!EG(return_value_ptr_ptr)) {
2690
2692
if (IS_CONST == IS_TMP_VAR) {
@@ -2709,8 +2711,9 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CONST_HANDLER(ZEND_OPCODE_HAND
2709
2711
2710
2712
retval_ptr_ptr = NULL;
2711
2713
2712
- if (EX(function_state).function->common.return_hint.used)
2714
+ if (EX(function_state).function->common.return_hint.used) {
2713
2715
zend_return_hint_check(execute_data, *retval_ptr_ptr TSRMLS_CC);
2716
+ }
2714
2717
2715
2718
if (IS_CONST == IS_VAR && UNEXPECTED(retval_ptr_ptr == NULL)) {
2716
2719
zend_error_noreturn(E_ERROR, "Cannot return string offsets by reference");
@@ -7998,8 +8001,9 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
7998
8001
SAVE_OPLINE();
7999
8002
retval_ptr = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
8000
8003
8001
- if (EX(function_state).function->common.return_hint.used)
8004
+ if (EX(function_state).function->common.return_hint.used) {
8002
8005
zend_return_hint_check(execute_data, retval_ptr TSRMLS_CC);
8006
+ }
8003
8007
8004
8008
if (!EG(return_value_ptr_ptr)) {
8005
8009
zval_dtor(free_op1.var);
@@ -8052,8 +8056,9 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLE
8052
8056
8053
8057
retval_ptr = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
8054
8058
8055
- if (EX(function_state).function->common.return_hint.used)
8059
+ if (EX(function_state).function->common.return_hint.used) {
8056
8060
zend_return_hint_check(execute_data, retval_ptr TSRMLS_CC);
8061
+ }
8057
8062
8058
8063
if (!EG(return_value_ptr_ptr)) {
8059
8064
if (IS_TMP_VAR == IS_TMP_VAR) {
@@ -8078,8 +8083,9 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLE
8078
8083
8079
8084
retval_ptr_ptr = NULL;
8080
8085
8081
- if (EX(function_state).function->common.return_hint.used)
8086
+ if (EX(function_state).function->common.return_hint.used) {
8082
8087
zend_return_hint_check(execute_data, *retval_ptr_ptr TSRMLS_CC);
8088
+ }
8083
8089
8084
8090
if (IS_TMP_VAR == IS_VAR && UNEXPECTED(retval_ptr_ptr == NULL)) {
8085
8091
zend_error_noreturn(E_ERROR, "Cannot return string offsets by reference");
@@ -13267,8 +13273,9 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
13267
13273
SAVE_OPLINE();
13268
13274
retval_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
13269
13275
13270
- if (EX(function_state).function->common.return_hint.used)
13276
+ if (EX(function_state).function->common.return_hint.used) {
13271
13277
zend_return_hint_check(execute_data, retval_ptr TSRMLS_CC);
13278
+ }
13272
13279
13273
13280
if (!EG(return_value_ptr_ptr)) {
13274
13281
zval_ptr_dtor_nogc(&free_op1.var);
@@ -13321,8 +13328,9 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
13321
13328
13322
13329
retval_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
13323
13330
13324
- if (EX(function_state).function->common.return_hint.used)
13331
+ if (EX(function_state).function->common.return_hint.used) {
13325
13332
zend_return_hint_check(execute_data, retval_ptr TSRMLS_CC);
13333
+ }
13326
13334
13327
13335
if (!EG(return_value_ptr_ptr)) {
13328
13336
if (IS_VAR == IS_TMP_VAR) {
@@ -13347,8 +13355,9 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
13347
13355
13348
13356
retval_ptr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
13349
13357
13350
- if (EX(function_state).function->common.return_hint.used)
13358
+ if (EX(function_state).function->common.return_hint.used) {
13351
13359
zend_return_hint_check(execute_data, *retval_ptr_ptr TSRMLS_CC);
13360
+ }
13352
13361
13353
13362
if (IS_VAR == IS_VAR && UNEXPECTED(retval_ptr_ptr == NULL)) {
13354
13363
zend_error_noreturn(E_ERROR, "Cannot return string offsets by reference");
@@ -30891,8 +30900,9 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
30891
30900
SAVE_OPLINE();
30892
30901
retval_ptr = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
30893
30902
30894
- if (EX(function_state).function->common.return_hint.used)
30903
+ if (EX(function_state).function->common.return_hint.used) {
30895
30904
zend_return_hint_check(execute_data, retval_ptr TSRMLS_CC);
30905
+ }
30896
30906
30897
30907
if (!EG(return_value_ptr_ptr)) {
30898
30908
@@ -30945,8 +30955,9 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER
30945
30955
30946
30956
retval_ptr = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
30947
30957
30948
- if (EX(function_state).function->common.return_hint.used)
30958
+ if (EX(function_state).function->common.return_hint.used) {
30949
30959
zend_return_hint_check(execute_data, retval_ptr TSRMLS_CC);
30960
+ }
30950
30961
30951
30962
if (!EG(return_value_ptr_ptr)) {
30952
30963
if (IS_CV == IS_TMP_VAR) {
@@ -30971,8 +30982,9 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER
30971
30982
30972
30983
retval_ptr_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->op1.var TSRMLS_CC);
30973
30984
30974
- if (EX(function_state).function->common.return_hint.used)
30985
+ if (EX(function_state).function->common.return_hint.used) {
30975
30986
zend_return_hint_check(execute_data, *retval_ptr_ptr TSRMLS_CC);
30987
+ }
30976
30988
30977
30989
if (IS_CV == IS_VAR && UNEXPECTED(retval_ptr_ptr == NULL)) {
30978
30990
zend_error_noreturn(E_ERROR, "Cannot return string offsets by reference");
0 commit comments