[Spice-devel] [PATCH spice-server v2 02/12] red-channel-client: Move incoming/ougoing initialization to constructor

Jonathon Jongsma jjongsma at redhat.com
Wed Nov 2 15:45:01 UTC 2016


Acked-by: Jonathon Jongsma <jjongsma at redhat.com>

On Tue, 2016-11-01 at 11:07 +0000, Frediano Ziglio wrote:
> These fields need just channel to be set to be initialized.
> Move their initialization to constructor to make sure
> they are initialized as soon as possible.
> 
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/dummy-channel-client.c |  2 --
>  server/red-channel-client.c   | 18 +++++++++---------
>  2 files changed, 9 insertions(+), 11 deletions(-)
> 
> diff --git a/server/dummy-channel-client.c b/server/dummy-channel-
> client.c
> index b7fee6f..a242d51 100644
> --- a/server/dummy-channel-client.c
> +++ b/server/dummy-channel-client.c
> @@ -70,8 +70,6 @@ static gboolean
> dummy_channel_client_initable_init(GInitable *initable,
>          goto cleanup;
>      }
>  
> -    rcc->incoming.header.data = rcc->incoming.header_buf;
> -
>      red_channel_add_client(channel, rcc);
>      red_client_add_channel(client, rcc);
>  
> diff --git a/server/red-channel-client.c b/server/red-channel-
> client.c
> index 3b2c24c..6c78237 100644
> --- a/server/red-channel-client.c
> +++ b/server/red-channel-client.c
> @@ -269,6 +269,14 @@ static void
> red_channel_client_constructed(GObject *object)
>  {
>      RedChannelClient *self =  RED_CHANNEL_CLIENT(object);
>  
> +    self->incoming.opaque = self;
> +    self->incoming.cb = red_channel_get_incoming_handler(self->priv-
> >channel);
> +
> +    self->priv->outgoing.opaque = self;
> +    self->priv->outgoing.cb = red_channel_get_outgoing_handler(self-
> >priv->channel);
> +    self->priv->outgoing.pos = 0;
> +    self->priv->outgoing.size = 0;
> +
>      if (red_channel_client_test_remote_common_cap(self,
> SPICE_COMMON_CAP_MINI_HEADER)) {
>          self->incoming.header = mini_header_wrapper;
>          self->priv->send_data.header = mini_header_wrapper;
> @@ -278,6 +286,7 @@ static void
> red_channel_client_constructed(GObject *object)
>          self->priv->send_data.header = full_header_wrapper;
>          self->priv->is_mini_header = FALSE;
>      }
> +    self->incoming.header.data = self->incoming.header_buf;
>  }
>  
>  static void red_channel_client_class_init(RedChannelClientClass
> *klass)
> @@ -900,15 +909,6 @@ static gboolean
> red_channel_client_initable_init(GInitable *initable,
>          self->priv->latency_monitor.roundtrip = -1;
>      }
>  
> -    self->incoming.opaque = self;
> -    self->incoming.cb = red_channel_get_incoming_handler(self->priv-
> >channel);
> -    self->incoming.header.data = self->incoming.header_buf;
> -
> -    self->priv->outgoing.opaque = self;
> -    self->priv->outgoing.cb = red_channel_get_outgoing_handler(self-
> >priv->channel);
> -    self->priv->outgoing.pos = 0;
> -    self->priv->outgoing.size = 0;
> -
>      if (self->priv->stream)
>          self->priv->stream->watch =
>              core->watch_add(core, self->priv->stream->socket,


More information about the Spice-devel mailing list