It doesn't matter how the parameters are provided, we always have
to copy the trampoline invoke function.
fcc.called_scope = intern->ce;
fcc.object = object ? Z_OBJ_P(object) : NULL;
- if (!variadic) {
- /*
- * Copy the zend_function when calling via handler (e.g. Closure::__invoke())
- */
- if ((mptr->internal_function.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) {
- fcc.function_handler = _copy_function(mptr);
- }
+ /*
+ * Copy the zend_function when calling via handler (e.g. Closure::__invoke())
+ */
+ if ((mptr->internal_function.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) {
+ fcc.function_handler = _copy_function(mptr);
}
result = zend_call_function(&fci, &fcc);