@@ -9599,40 +9599,18 @@ ZEND_VM_C_LABEL(try_again):
9599
9599
}
9600
9600
}
9601
9601
9602
- ZEND_VM_HELPER (zend_frameless_observed_call , ANY , ANY , uint8_t num_args , zend_function * fbc , zval * op1 , zval * op2 , zval * op3 , zval * result )
9602
+ ZEND_VM_HELPER (zend_frameless_observed_call , ANY , ANY )
9603
9603
{
9604
9604
USE_OPLINE
9605
9605
9606
- zend_execute_data * call = zend_vm_stack_push_call_frame_ex (zend_vm_calc_used_stack (num_args , fbc ), ZEND_CALL_NESTED_FUNCTION , fbc , num_args , NULL );
9607
- call -> prev_execute_data = execute_data ;
9608
- EG (current_execute_data ) = call ;
9609
-
9610
- switch (num_args ) {
9611
- case 3 : ZVAL_COPY (ZEND_CALL_VAR_NUM (call , 2 ), op3 ); if ((opline + 1 )-> op1_type & (IS_TMP_VAR |IS_VAR )) { zval_ptr_dtor_nogc (op3 ); ZVAL_UNDEF (op3 ); } ZEND_FALLTHROUGH ;
9612
- case 2 : ZVAL_COPY (ZEND_CALL_VAR_NUM (call , 1 ), op2 ); if (opline -> op2_type & (IS_TMP_VAR |IS_VAR )) { zval_ptr_dtor_nogc (op2 ); ZVAL_UNDEF (op2 ); } ZEND_FALLTHROUGH ;
9613
- case 1 : ZVAL_COPY (ZEND_CALL_VAR_NUM (call , 0 ), op1 ); if (opline -> op1_type & (IS_TMP_VAR |IS_VAR )) { zval_ptr_dtor_nogc (op1 ); ZVAL_UNDEF (op1 ); }
9614
- }
9615
-
9616
- zend_observer_fcall_begin_prechecked (call , ZEND_OBSERVER_DATA (fbc ));
9617
- fbc -> internal_function .handler (call , result );
9618
- zend_observer_fcall_end (call , result );
9619
-
9620
- EG (current_execute_data ) = execute_data ;
9621
- zend_vm_stack_free_args (call );
9622
-
9623
- uint32_t call_info = ZEND_CALL_INFO (call );
9624
- if (UNEXPECTED (call_info & ZEND_CALL_ALLOCATED )) {
9625
- zend_vm_stack_free_call_frame_ex (call_info , call );
9626
- } else {
9627
- EG (vm_stack_top ) = (zval * )call ;
9628
- }
9606
+ zend_frameless_observed_call (execute_data );
9629
9607
9630
9608
if (UNEXPECTED (EG (exception ) != NULL )) {
9631
9609
zend_rethrow_exception (execute_data );
9632
9610
HANDLE_EXCEPTION ();
9633
9611
}
9634
9612
9635
- ZEND_VM_SET_OPCODE (opline + 1 + (num_args == 3 ));
9613
+ ZEND_VM_SET_OPCODE (opline + 1 + (opline -> opcode == ZEND_FRAMELESS_ICALL_3 ));
9636
9614
ZEND_VM_CONTINUE ();
9637
9615
}
9638
9616
@@ -9641,16 +9619,17 @@ ZEND_VM_HANDLER(204, ZEND_FRAMELESS_ICALL_0, UNUSED, UNUSED, SPEC(OBSERVER))
9641
9619
USE_OPLINE
9642
9620
SAVE_OPLINE ();
9643
9621
9644
- zval * result = EX_VAR (opline -> result .var );
9645
- ZVAL_NULL (result );
9646
9622
#if !ZEND_VM_SPEC || ZEND_OBSERVER_ENABLED
9647
9623
if (ZEND_OBSERVER_ENABLED ) {
9648
9624
zend_function * fbc = ZEND_FLF_FUNC (opline );
9649
9625
if (UNEXPECTED (zend_observer_handler_is_unobserved (ZEND_OBSERVER_DATA (fbc )) == false)) {
9650
- ZEND_VM_DISPATCH_TO_HELPER (zend_frameless_observed_call , args , 0 , fbc , fbc , op1 , NULL , op2 , NULL , op3 , NULL , result , result );
9626
+ ZEND_VM_DISPATCH_TO_HELPER (zend_frameless_observed_call );
9651
9627
}
9652
9628
}
9653
9629
#endif
9630
+
9631
+ zval * result = EX_VAR (opline -> result .var );
9632
+ ZVAL_NULL (result );
9654
9633
zend_frameless_function_0 function = (zend_frameless_function_0 )ZEND_FLF_HANDLER (opline );
9655
9634
function (EX_VAR (opline -> result .var ));
9656
9635
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION ();
@@ -9660,6 +9639,16 @@ ZEND_VM_HANDLER(205, ZEND_FRAMELESS_ICALL_1, ANY, UNUSED, SPEC(OBSERVER))
9660
9639
{
9661
9640
USE_OPLINE
9662
9641
SAVE_OPLINE ();
9642
+
9643
+ #if !ZEND_VM_SPEC || ZEND_OBSERVER_ENABLED
9644
+ if (ZEND_OBSERVER_ENABLED ) {
9645
+ zend_function * fbc = ZEND_FLF_FUNC (opline );
9646
+ if (UNEXPECTED (zend_observer_handler_is_unobserved (ZEND_OBSERVER_DATA (fbc )) == false)) {
9647
+ ZEND_VM_DISPATCH_TO_HELPER (zend_frameless_observed_call );
9648
+ }
9649
+ }
9650
+ #endif
9651
+
9663
9652
zend_frameless_function_1 function = (zend_frameless_function_1 )ZEND_FLF_HANDLER (opline );
9664
9653
zval * result = EX_VAR (opline -> result .var );
9665
9654
ZVAL_NULL (result );
@@ -9668,14 +9657,6 @@ ZEND_VM_HANDLER(205, ZEND_FRAMELESS_ICALL_1, ANY, UNUSED, SPEC(OBSERVER))
9668
9657
FREE_OP1 ();
9669
9658
HANDLE_EXCEPTION ();
9670
9659
}
9671
- #if !ZEND_VM_SPEC || ZEND_OBSERVER_ENABLED
9672
- if (ZEND_OBSERVER_ENABLED ) {
9673
- zend_function * fbc = ZEND_FLF_FUNC (opline );
9674
- if (UNEXPECTED (zend_observer_handler_is_unobserved (ZEND_OBSERVER_DATA (fbc )) == false)) {
9675
- ZEND_VM_DISPATCH_TO_HELPER (zend_frameless_observed_call , args , 1 , fbc , fbc , op1 , arg1 , op2 , NULL , op3 , NULL , result , result );
9676
- }
9677
- }
9678
- #endif
9679
9660
function (result , arg1 );
9680
9661
FREE_OP1 ();
9681
9662
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION ();
@@ -9685,6 +9666,16 @@ ZEND_VM_HANDLER(206, ZEND_FRAMELESS_ICALL_2, ANY, ANY, SPEC(OBSERVER))
9685
9666
{
9686
9667
USE_OPLINE
9687
9668
SAVE_OPLINE ();
9669
+
9670
+ #if !ZEND_VM_SPEC || ZEND_OBSERVER_ENABLED
9671
+ if (ZEND_OBSERVER_ENABLED ) {
9672
+ zend_function * fbc = ZEND_FLF_FUNC (opline );
9673
+ if (UNEXPECTED (zend_observer_handler_is_unobserved (ZEND_OBSERVER_DATA (fbc )) == false)) {
9674
+ ZEND_VM_DISPATCH_TO_HELPER (zend_frameless_observed_call );
9675
+ }
9676
+ }
9677
+ #endif
9678
+
9688
9679
zend_frameless_function_2 function = (zend_frameless_function_2 )ZEND_FLF_HANDLER (opline );
9689
9680
zval * result = EX_VAR (opline -> result .var );
9690
9681
ZVAL_NULL (result );
@@ -9695,14 +9686,6 @@ ZEND_VM_HANDLER(206, ZEND_FRAMELESS_ICALL_2, ANY, ANY, SPEC(OBSERVER))
9695
9686
FREE_OP2 ();
9696
9687
HANDLE_EXCEPTION ();
9697
9688
}
9698
- #if !ZEND_VM_SPEC || ZEND_OBSERVER_ENABLED
9699
- if (ZEND_OBSERVER_ENABLED ) {
9700
- zend_function * fbc = ZEND_FLF_FUNC (opline );
9701
- if (UNEXPECTED (zend_observer_handler_is_unobserved (ZEND_OBSERVER_DATA (fbc )) == false)) {
9702
- ZEND_VM_DISPATCH_TO_HELPER (zend_frameless_observed_call , args , 2 , fbc , fbc , op1 , arg1 , op2 , arg2 , op3 , NULL , result , result );
9703
- }
9704
- }
9705
- #endif
9706
9689
function (result , arg1 , arg2 );
9707
9690
FREE_OP1 ();
9708
9691
/* Set OP1 to UNDEF in case FREE_OP2() throws. */
@@ -9717,6 +9700,16 @@ ZEND_VM_HANDLER(207, ZEND_FRAMELESS_ICALL_3, ANY, ANY, SPEC(OBSERVER))
9717
9700
{
9718
9701
USE_OPLINE
9719
9702
SAVE_OPLINE ();
9703
+
9704
+ #if !ZEND_VM_SPEC || ZEND_OBSERVER_ENABLED
9705
+ if (ZEND_OBSERVER_ENABLED ) {
9706
+ zend_function * fbc = ZEND_FLF_FUNC (opline );
9707
+ if (UNEXPECTED (zend_observer_handler_is_unobserved (ZEND_OBSERVER_DATA (fbc )) == false)) {
9708
+ ZEND_VM_DISPATCH_TO_HELPER (zend_frameless_observed_call );
9709
+ }
9710
+ }
9711
+ #endif
9712
+
9720
9713
zend_frameless_function_3 function = (zend_frameless_function_3 )ZEND_FLF_HANDLER (opline );
9721
9714
zval * result = EX_VAR (opline -> result .var );
9722
9715
ZVAL_NULL (result );
@@ -9729,14 +9722,6 @@ ZEND_VM_HANDLER(207, ZEND_FRAMELESS_ICALL_3, ANY, ANY, SPEC(OBSERVER))
9729
9722
FREE_OP_DATA ();
9730
9723
HANDLE_EXCEPTION ();
9731
9724
}
9732
- #if !ZEND_VM_SPEC || ZEND_OBSERVER_ENABLED
9733
- if (ZEND_OBSERVER_ENABLED ) {
9734
- zend_function * fbc = ZEND_FLF_FUNC (opline );
9735
- if (UNEXPECTED (zend_observer_handler_is_unobserved (ZEND_OBSERVER_DATA (fbc )) == false)) {
9736
- ZEND_VM_DISPATCH_TO_HELPER (zend_frameless_observed_call , args , 3 , fbc , fbc , op1 , arg1 , op2 , arg2 , op3 , arg3 , result , result );
9737
- }
9738
- }
9739
- #endif
9740
9725
function (result , arg1 , arg2 , arg3 );
9741
9726
FREE_OP1 ();
9742
9727
/* Set to UNDEF in case FREE_OP2() throws. */
0 commit comments