[alsa-devel] [PATCH] ALSA: drivers: make array 'names' const, reduces object code size

Joe Perches joe at perches.com
Mon Nov 27 16:40:07 CET 2017


On Mon, 2017-11-27 at 15:55 +0100, walter harms wrote:
> Am 27.11.2017 13:58, schrieb Colin King:
> > From: Colin Ian King <colin.king at canonical.com>
> > Don't populate array 'names' on the stack but instead make them static.
> > Makes the object code smaller by 50 bytes:
[]
> > diff --git a/sound/drivers/dummy.c b/sound/drivers/dummy.c
[]
> > @@ -830,7 +830,7 @@ static int snd_dummy_capsrc_put(struct snd_kcontrol *kcontrol, struct snd_ctl_el
> >  static int snd_dummy_iobox_info(struct snd_kcontrol *kcontrol,
> >  				struct snd_ctl_elem_info *info)
> >  {
> > -	const char *const names[] = { "None", "CD Player" };
> > +	static const char *const names[] = { "None", "CD Player" };
> >  
> >  	return snd_ctl_enum_info(info, 1, 2, names);
> >  }
> 
> nitpick: while here
>    snd_ctl_enum_info(info, 1, ARRAY_SIZE(names), names);
> 
> just my 2 cents,

True, but that seems counter style for most uses of snd_ctl_enum_info

$ git grep -w snd_ctl_enum_info | grep -v ARRAY_SIZE | wc -l
159
$ git grep -w snd_ctl_enum_info | grep ARRAY_SIZE | wc -l
10

but most of those seem to choose variable amounts of a single
array.  Here, ARRAY_SIZE seems better to me too.

For another real nitpick, please prefer "const *" over "const*"

$ git grep -P "\*\s+const\b" | wc -l
7068
$ git grep -P "\*const\b" | wc -l
1801



More information about the Alsa-devel mailing list