[Spice-devel] [PATCH spice-server 2/2] sound: Use memcpy instead of manually copy volume array

Frediano Ziglio fziglio at redhat.com
Wed Feb 15 17:07:59 UTC 2017


> 
> On Thu, Feb 02, 2017 at 04:29:37PM +0000, Frediano Ziglio wrote:
> > Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> > ---
> >  server/sound.c | 6 ++----
> >  1 file changed, 2 insertions(+), 4 deletions(-)
> > 
> > diff --git a/server/sound.c b/server/sound.c
> > index 7c36174..b692646 100644
> > --- a/server/sound.c
> > +++ b/server/sound.c
> > @@ -384,7 +384,6 @@ static int
> > snd_playback_send_migrate(PlaybackChannelClient *client)
> >  static int snd_send_volume(SndChannelClient *client, uint32_t cap, int
> >  msg)
> >  {
> >      SpiceMsgAudioVolume *vol;
> > -    uint8_t c;
> >      RedChannelClient *rcc = RED_CHANNEL_CLIENT(client);
> >      SpiceMarshaller *m = red_channel_client_get_marshaller(rcc);
> >      SndChannel *channel =
> >      SND_CHANNEL(red_channel_client_get_channel(rcc));
> > @@ -398,9 +397,8 @@ static int snd_send_volume(SndChannelClient *client,
> > uint32_t cap, int msg)
> >                   st->volume_nchannels * sizeof (uint16_t));
> >      red_channel_client_init_send_data(rcc, msg);
> >      vol->nchannels = st->volume_nchannels;
> > -    for (c = 0; c < st->volume_nchannels; ++c) {
> > -        vol->volume[c] = st->volume[c];
> > -    }
> > +    SPICE_VERIFY(sizeof(vol->volume[0]) == sizeof(st->volume[0]));
> > +    memcpy(vol->volume, st->volume, sizeof(st->volume[0]) *
> > st->volume_nchannels);
> 
> I think I prefer the loop version (easier to read).
> If you really insist on having the memcpy version,
> Acked-by: Christophe Fergeau <cfergeau at redhat.com>
> 

Let's size decide!

Before:
   text	   data	    bss	    dec	    hex	filename
  16588	      0	     96	  16684	   412c	server/.libs/sound.o

After:
   text	   data	    bss	    dec	    hex	filename
  16684	      0	     96	  16780	   418c	server/.libs/sound.o

Damn! Dropped!

Frediano


More information about the Spice-devel mailing list