]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
stdio-common: Simplify printf_unknown interface in vfprintf-internal.c
authorFlorian Weimer <fweimer@redhat.com>
Tue, 24 May 2022 06:03:11 +0000 (08:03 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Tue, 24 May 2022 06:03:11 +0000 (08:03 +0200)
The called function does not use the args array, so there is no need
to produce it.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
stdio-common/vfprintf-internal.c

index f8aa2fdafb9d040bcf9946c577fa10f614ff689f..fb94961f37265940b19f909901a10d89672988e9 100644 (file)
@@ -672,8 +672,7 @@ static int printf_positional (FILE *s,
                              unsigned int mode_flags);
 
 /* Handle unknown format specifier.  */
-static int printf_unknown (FILE *, const struct printf_info *,
-                          const void *const *) __THROW;
+static int printf_unknown (FILE *, const struct printf_info *) __THROW;
 
 /* Group digits of number string.  */
 static CHAR_T *group_number (CHAR_T *, CHAR_T *, CHAR_T *, const char *,
@@ -1465,19 +1464,7 @@ printf_positional (FILE *s, const CHAR_T *format, int readonly_format,
 
          LABEL (form_unknown):
          {
-           unsigned int i;
-           const void **ptr;
-
-           ptr = alloca (specs[nspecs_done].ndata_args
-                         * sizeof (const void *));
-
-           /* Fill in an array of pointers to the argument values.  */
-           for (i = 0; i < specs[nspecs_done].ndata_args; ++i)
-             ptr[i] = &args_value[specs[nspecs_done].data_arg + i];
-
-           /* Call the function.  */
-           function_done = printf_unknown (s, &specs[nspecs_done].info,
-                                           ptr);
+           int function_done = printf_unknown (s, &specs[nspecs_done].info);
 
            /* If an error occurred we don't have information about #
               of chars.  */
@@ -1507,9 +1494,7 @@ printf_positional (FILE *s, const CHAR_T *format, int readonly_format,
 /* Handle an unknown format specifier.  This prints out a canonicalized
    representation of the format spec itself.  */
 static int
-printf_unknown (FILE *s, const struct printf_info *info,
-               const void *const *args)
-
+printf_unknown (FILE *s, const struct printf_info *info)
 {
   int done = 0;
   CHAR_T work_buffer[MAX (sizeof (info->width), sizeof (info->prec)) * 3];