[Spice-devel] [PATCH spice-gtk 3/9] channel-smartcard: unref in flight messages as soon as they are send

Christophe Fergeau cfergeau at redhat.com
Thu Dec 15 09:35:00 PST 2011


On Thu, Dec 15, 2011 at 06:23:04PM +0100, Christophe Fergeau wrote:
> ACK

Actually s/send/sent in the subject

> 
> On Wed, Dec 14, 2011 at 03:14:03PM +0100, Hans de Goede wrote:
> > This is a preparation patch for making spice_msg_out_send() take ownership
> > of the passed in msg.
> > 
> > Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> > ---
> >  gtk/channel-smartcard.c |   12 +++++++++---
> >  1 files changed, 9 insertions(+), 3 deletions(-)
> > 
> > diff --git a/gtk/channel-smartcard.c b/gtk/channel-smartcard.c
> > index 64fc06e..1df91ce 100644
> > --- a/gtk/channel-smartcard.c
> > +++ b/gtk/channel-smartcard.c
> > @@ -191,7 +191,8 @@ static const spice_msg_handler smartcard_handlers[] = {
> >  static void
> >  smartcard_message_free(SpiceSmartcardChannelMessage *message)
> >  {
> > -    spice_msg_out_unref(message->message);
> > +    if (message->message)
> > +        spice_msg_out_unref(message->message);
> >      g_slice_free(SpiceSmartcardChannelMessage, message);
> >  }
> >  
> > @@ -268,8 +269,11 @@ smartcard_message_complete_in_flight(SpiceSmartcardChannel *channel)
> >  
> >      smartcard_message_free(channel->priv->in_flight_message);
> >      channel->priv->in_flight_message = g_queue_pop_head(channel->priv->message_queue);
> > -    if (channel->priv->in_flight_message != NULL)
> > +    if (channel->priv->in_flight_message != NULL) {
> >          spice_msg_out_send(channel->priv->in_flight_message->message);
> > +        spice_msg_out_unref(channel->priv->in_flight_message->message);
> > +        channel->priv->in_flight_message->message = NULL;
> > +    }
> >  }
> >  
> >  static void smartcard_message_send(SpiceSmartcardChannel *channel,
> > @@ -293,7 +297,9 @@ static void smartcard_message_send(SpiceSmartcardChannel *channel,
> >      if (channel->priv->in_flight_message == NULL) {
> >          g_return_if_fail(g_queue_is_empty(channel->priv->message_queue));
> >          channel->priv->in_flight_message = message;
> > -        spice_msg_out_send(msg_out);
> > +        spice_msg_out_send(channel->priv->in_flight_message->message);
> > +        spice_msg_out_unref(channel->priv->in_flight_message->message);
> > +        channel->priv->in_flight_message->message = NULL;
> >      } else {
> >          g_queue_push_tail(channel->priv->message_queue, message);
> >      }
> > -- 
> > 1.7.7.4
> > 
> > _______________________________________________
> > Spice-devel mailing list
> > Spice-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/spice-devel



> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20111215/9f424235/attachment.pgp>


More information about the Spice-devel mailing list