From 15ca14b3f1a59a3ec209ca9316e0f79747a7db15 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Sat, 7 Jun 2025 14:21:24 +0200 Subject: [PATCH] Avoid making a redundant copy in php_filter_callback() `call_user_function` already makes a copy to the call frame for its arguments, there's no need to do this ourselves. --- ext/filter/callback_filter.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/ext/filter/callback_filter.c b/ext/filter/callback_filter.c index 067f16a03ea24..b6d57739b2b9b 100644 --- a/ext/filter/callback_filter.c +++ b/ext/filter/callback_filter.c @@ -19,7 +19,6 @@ void php_filter_callback(PHP_INPUT_FILTER_PARAM_DECL) { zval retval; - zval args[1]; int status; if (!option_array || !zend_is_callable(option_array, IS_CALLABLE_SUPPRESS_DEPRECATIONS, NULL)) { @@ -29,8 +28,7 @@ void php_filter_callback(PHP_INPUT_FILTER_PARAM_DECL) return; } - ZVAL_COPY(&args[0], value); - status = call_user_function(NULL, NULL, option_array, &retval, 1, args); + status = call_user_function(NULL, NULL, option_array, &retval, 1, value); if (status == SUCCESS && !Z_ISUNDEF(retval)) { zval_ptr_dtor(value); @@ -39,6 +37,4 @@ void php_filter_callback(PHP_INPUT_FILTER_PARAM_DECL) zval_ptr_dtor(value); ZVAL_NULL(value); } - - zval_ptr_dtor(&args[0]); }