@@ -9713,7 +9713,14 @@ ZEND_VM_HANDLER(205, ZEND_FRAMELESS_ICALL_1, ANY, UNUSED, SPEC(OBSERVER))
97139713#endif
97149714 {
97159715 zend_frameless_function_1 function = (zend_frameless_function_1 )ZEND_FLF_HANDLER (opline );
9716- function (result , arg1 );
9716+ if (UNEXPECTED (ZEND_FLF_USES_ARG_COPY (opline ))) {
9717+ zval arg1_copy ;
9718+ zend_frameless_copy_arg (& arg1_copy , arg1 );
9719+ function (result , & arg1_copy );
9720+ zval_ptr_dtor_nogc (& arg1_copy );
9721+ } else {
9722+ function (result , arg1 );
9723+ }
97179724 }
97189725 FREE_OP1 ();
97199726 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION ();
@@ -9741,7 +9748,16 @@ ZEND_VM_HANDLER(206, ZEND_FRAMELESS_ICALL_2, ANY, ANY, SPEC(OBSERVER))
97419748#endif
97429749 {
97439750 zend_frameless_function_2 function = (zend_frameless_function_2 )ZEND_FLF_HANDLER (opline );
9744- function (result , arg1 , arg2 );
9751+ if (UNEXPECTED (ZEND_FLF_USES_ARG_COPY (opline ))) {
9752+ zval arg1_copy , arg2_copy ;
9753+ zend_frameless_copy_arg (& arg1_copy , arg1 );
9754+ zend_frameless_copy_arg (& arg2_copy , arg2 );
9755+ function (result , & arg1_copy , & arg2_copy );
9756+ zval_ptr_dtor_nogc (& arg1_copy );
9757+ zval_ptr_dtor_nogc (& arg2_copy );
9758+ } else {
9759+ function (result , arg1 , arg2 );
9760+ }
97459761 }
97469762
97479763 FREE_OP1 ();
@@ -9777,7 +9793,18 @@ ZEND_VM_HANDLER(207, ZEND_FRAMELESS_ICALL_3, ANY, ANY, SPEC(OBSERVER))
97779793#endif
97789794 {
97799795 zend_frameless_function_3 function = (zend_frameless_function_3 )ZEND_FLF_HANDLER (opline );
9780- function (result , arg1 , arg2 , arg3 );
9796+ if (UNEXPECTED (ZEND_FLF_USES_ARG_COPY (opline ))) {
9797+ zval arg1_copy , arg2_copy , arg3_copy ;
9798+ zend_frameless_copy_arg (& arg1_copy , arg1 );
9799+ zend_frameless_copy_arg (& arg2_copy , arg2 );
9800+ zend_frameless_copy_arg (& arg3_copy , arg3 );
9801+ function (result , & arg1_copy , & arg2_copy , & arg3_copy );
9802+ zval_ptr_dtor_nogc (& arg1_copy );
9803+ zval_ptr_dtor_nogc (& arg2_copy );
9804+ zval_ptr_dtor_nogc (& arg3_copy );
9805+ } else {
9806+ function (result , arg1 , arg2 , arg3 );
9807+ }
97819808 }
97829809
97839810 FREE_OP1 ();
0 commit comments