diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index 4fcf2b88727..ab9b79f73c8 100644 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -1436,15 +1436,9 @@ static spl_dual_it_object* spl_dual_it_construct(INTERNAL_FUNCTION_PARAMETERS, z case DIT_CallbackFilterIterator: case DIT_RecursiveCallbackFilterIterator: { zend_fcall_info fci; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "Of", &zobject, ce_inner, &fci, &intern->u.callback_filter) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "OF", &zobject, ce_inner, &fci, &intern->u.callback_filter) == FAILURE) { return NULL; } - if (!ZEND_FCC_INITIALIZED(intern->u.callback_filter)) { - /* Call trampoline has been cleared by zpp. Refetch it, because we want to deal - * with it outselves. It is important that it is not refetched on every call, - * because calls may occur from different scopes. */ - zend_is_callable_ex(&fci.function_name, NULL, IS_CALLABLE_SUPPRESS_DEPRECATIONS, NULL, &intern->u.callback_filter, NULL); - } zend_fcc_addref(&intern->u.callback_filter); break; }