From: Nikita Popov Date: Mon, 6 Jul 2020 08:37:46 +0000 (+0200) Subject: Reuse warning function X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=795d2cbd7118155892eeef8b75354338f0709bc5;p=php Reuse warning function --- diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 5d619437f5..5df8345c76 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1931,7 +1931,7 @@ static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_non_static_method_cal ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name)); } -static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_param_must_be_ref(const zend_function *func, uint32_t arg_num) +ZEND_COLD void ZEND_FASTCALL zend_param_must_be_ref(const zend_function *func, uint32_t arg_num) { const char *arg_name = get_function_arg_name(func, arg_num); diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index 0aa959d11f..7b1ae11748 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -57,6 +57,7 @@ extern ZEND_API const zend_internal_function zend_pass_function; ZEND_API ZEND_COLD void ZEND_FASTCALL zend_missing_arg_error(zend_execute_data *execute_data); ZEND_API ZEND_COLD void ZEND_FASTCALL zend_deprecated_function(const zend_function *fbc); +ZEND_COLD void ZEND_FASTCALL zend_param_must_be_ref(const zend_function *func, uint32_t arg_num); ZEND_API zend_bool ZEND_FASTCALL zend_verify_ref_assignable_zval(zend_reference *ref, zval *zv, zend_bool strict); ZEND_API zend_bool ZEND_FASTCALL zend_verify_prop_assignable_by_ref(zend_property_info *prop_info, zval *orig_val, zend_bool strict); diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index d62f104f22..a646bceb0b 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -746,18 +746,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache) / } else if (!ARG_MAY_BE_SENT_BY_REF(func, i + 1)) { /* By-value send is not allowed -- emit a warning, * but still perform the call with a by-value send. */ - const char *arg_name = get_function_arg_name(func, i + 1); - - zend_error(E_WARNING, - "%s%s%s(): Argument #%d%s%s%s must be passed by reference, value given", - func->common.scope ? ZSTR_VAL(func->common.scope->name) : "", - func->common.scope ? "::" : "", - ZSTR_VAL(func->common.function_name), - i+1, - arg_name ? " ($" : "", - arg_name ? arg_name : "", - arg_name ? ")" : "" - ); + zend_param_must_be_ref(func, i + 1); if (UNEXPECTED(EG(exception))) { ZEND_CALL_NUM_ARGS(call) = i; zend_vm_stack_free_args(call);