]> granicus.if.org Git - php/commitdiff
Reuse warning function
authorNikita Popov <nikita.ppv@gmail.com>
Mon, 6 Jul 2020 08:37:46 +0000 (10:37 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 6 Jul 2020 08:38:02 +0000 (10:38 +0200)
Zend/zend_execute.c
Zend/zend_execute.h
Zend/zend_execute_API.c

index 5d619437f5eb69055cb7f71cdffbc167b0cf0c70..5df8345c762dd9864307f414d83be8d5d49e329e 100644 (file)
@@ -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);
 
index 0aa959d11f57b787a668668769b6952ee1306180..7b1ae117489918aba1ec688bafcc9f7a3b74f7c6 100644 (file)
@@ -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);
index d62f104f229a4e96cfd19c18627610c4de117005..a646bceb0b8a7d8a17d433cd2143f95c3f81004d 100644 (file)
@@ -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);