@@ -9638,9 +9638,9 @@ ZEND_VM_HANDLER(205, ZEND_FRAMELESS_ICALL_1, ANY, UNUSED, SPEC(OBSERVER))
9638
9638
SAVE_OPLINE ();
9639
9639
9640
9640
zval * result = EX_VAR (opline -> result .var );
9641
- ZVAL_NULL (result );
9642
9641
zval * arg1 = GET_OP1_ZVAL_PTR_DEREF (BP_VAR_R );
9643
9642
if (EG (exception )) {
9643
+ ZVAL_NULL (result );
9644
9644
FREE_OP1 ();
9645
9645
HANDLE_EXCEPTION ();
9646
9646
}
@@ -9651,8 +9651,11 @@ ZEND_VM_HANDLER(205, ZEND_FRAMELESS_ICALL_1, ANY, UNUSED, SPEC(OBSERVER))
9651
9651
} else
9652
9652
#endif
9653
9653
{
9654
+ zval tmp_result ;
9655
+ ZVAL_NULL (& tmp_result );
9654
9656
zend_frameless_function_1 function = (zend_frameless_function_1 )ZEND_FLF_HANDLER (opline );
9655
- function (result , arg1 );
9657
+ function (& tmp_result , arg1 );
9658
+ ZVAL_COPY_VALUE (result , & tmp_result );
9656
9659
}
9657
9660
FREE_OP1 ();
9658
9661
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION ();
@@ -9664,10 +9667,10 @@ ZEND_VM_HANDLER(206, ZEND_FRAMELESS_ICALL_2, ANY, ANY, SPEC(OBSERVER))
9664
9667
SAVE_OPLINE ();
9665
9668
9666
9669
zval * result = EX_VAR (opline -> result .var );
9667
- ZVAL_NULL (result );
9668
9670
zval * arg1 = GET_OP1_ZVAL_PTR_DEREF (BP_VAR_R );
9669
9671
zval * arg2 = GET_OP2_ZVAL_PTR_DEREF (BP_VAR_R );
9670
9672
if (EG (exception )) {
9673
+ ZVAL_NULL (result );
9671
9674
FREE_OP1 ();
9672
9675
FREE_OP2 ();
9673
9676
HANDLE_EXCEPTION ();
@@ -9679,8 +9682,11 @@ ZEND_VM_HANDLER(206, ZEND_FRAMELESS_ICALL_2, ANY, ANY, SPEC(OBSERVER))
9679
9682
} else
9680
9683
#endif
9681
9684
{
9685
+ zval tmp_result ;
9686
+ ZVAL_NULL (& tmp_result );
9682
9687
zend_frameless_function_2 function = (zend_frameless_function_2 )ZEND_FLF_HANDLER (opline );
9683
- function (result , arg1 , arg2 );
9688
+ function (& tmp_result , arg1 , arg2 );
9689
+ ZVAL_COPY_VALUE (result , & tmp_result );
9684
9690
}
9685
9691
9686
9692
FREE_OP1 ();
@@ -9698,11 +9704,11 @@ ZEND_VM_HANDLER(207, ZEND_FRAMELESS_ICALL_3, ANY, ANY, SPEC(OBSERVER))
9698
9704
SAVE_OPLINE ();
9699
9705
9700
9706
zval * result = EX_VAR (opline -> result .var );
9701
- ZVAL_NULL (result );
9702
9707
zval * arg1 = GET_OP1_ZVAL_PTR_DEREF (BP_VAR_R );
9703
9708
zval * arg2 = GET_OP2_ZVAL_PTR_DEREF (BP_VAR_R );
9704
9709
zval * arg3 = GET_OP_DATA_ZVAL_PTR_DEREF (BP_VAR_R );
9705
9710
if (EG (exception )) {
9711
+ ZVAL_NULL (result );
9706
9712
FREE_OP1 ();
9707
9713
FREE_OP2 ();
9708
9714
FREE_OP_DATA ();
@@ -9715,8 +9721,11 @@ ZEND_VM_HANDLER(207, ZEND_FRAMELESS_ICALL_3, ANY, ANY, SPEC(OBSERVER))
9715
9721
} else
9716
9722
#endif
9717
9723
{
9724
+ zval tmp_result ;
9725
+ ZVAL_NULL (& tmp_result );
9718
9726
zend_frameless_function_3 function = (zend_frameless_function_3 )ZEND_FLF_HANDLER (opline );
9719
- function (result , arg1 , arg2 , arg3 );
9727
+ function (& tmp_result , arg1 , arg2 , arg3 );
9728
+ ZVAL_COPY_VALUE (result , & tmp_result );
9720
9729
}
9721
9730
9722
9731
FREE_OP1 ();
0 commit comments